Title: [1065] trunk/jopenssl: More validation of failures
Revision
1065
Author
olabini
Date
2008-07-21 14:42:55 -0400 (Mon, 21 Jul 2008)

Log Message

More validation of failures

Modified Paths


Diff

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/MimeHeader.java (1064 => 1065)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/MimeHeader.java	2008-07-21 18:41:43 UTC (rev 1064)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/MimeHeader.java	2008-07-21 18:42:55 UTC (rev 1065)
@@ -32,4 +32,15 @@
  * @author <a href="" PROTECTED]">Ola Bini</a>
  */
 public class MimeHeader {
+    private String name;
+    private String value;
+
+    public MimeHeader(String name, String value) {
+        this.name = name;
+        this.value = value;
+    }
+
+    public String getValue() {
+        return this.value;
+    }
 }// MimeHeader

Modified: trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SMIME.java (1064 => 1065)


--- trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SMIME.java	2008-07-21 18:41:43 UTC (rev 1064)
+++ trunk/jopenssl/src/java/org/jruby/ext/openssl/impl/SMIME.java	2008-07-21 18:42:55 UTC (rev 1065)
@@ -54,7 +54,11 @@
         }
 
         MimeHeader hdr = mime.findHeader(headers, "content-type");
+        if(hdr == null || hdr.getValue() == null) {
+            throw new PKCS7Exception(PKCS7.F_SMIME_READ_PKCS7, PKCS7.R_NO_CONTENT_TYPE);
+        }
 
+
         return null;
 
 // 	if(!(hdr = mime_hdr_find(headers, "content-type")) || !hdr->value) {

Modified: trunk/jopenssl/test/test_java_pkcs7.rb (1064 => 1065)


--- trunk/jopenssl/test/test_java_pkcs7.rb	2008-07-21 18:41:43 UTC (rev 1064)
+++ trunk/jopenssl/test/test_java_pkcs7.rb	2008-07-21 18:42:55 UTC (rev 1065)
@@ -85,6 +85,38 @@
           assert_equal PKCS7::R_MIME_PARSE_ERROR, e.cause.get_reason
         end
       end
+
+      def test_read_pkcs7_should_raise_error_when_content_type_is_not_there
+        bio = BIO.new
+        mime = Mime.new
+
+        headers = ArrayList.new
+        mime.expects(:parseHeaders).with(bio).returns(headers)
+        mime.expects(:findHeader).with(headers, "content-type").returns(nil)
+
+        begin
+          SMIME.new(mime).readPKCS7(bio, nil)
+          assert false
+        rescue PKCS7Exception => e
+          assert_equal PKCS7::F_SMIME_READ_PKCS7, e.cause.get_method
+          assert_equal PKCS7::R_NO_CONTENT_TYPE, e.cause.get_reason
+        end
+
+
+        
+        
+        mime = Mime.new
+        mime.expects(:parseHeaders).with(bio).returns(headers)
+        mime.expects(:findHeader).with(headers, "content-type").returns(MimeHeader.new("content-type", nil))
+
+        begin
+          SMIME.new(mime).readPKCS7(bio, nil)
+          assert false
+        rescue PKCS7Exception => e
+          assert_equal PKCS7::F_SMIME_READ_PKCS7, e.cause.get_method
+          assert_equal PKCS7::R_NO_CONTENT_TYPE, e.cause.get_reason
+        end
+      end
       
       def test_read_pkcs7_should_set_the_second_arguments_contents_to_null_if_its_there
         mime = Mime.new
@@ -117,7 +149,7 @@
 
         headers = ArrayList.new
         mime.expects(:parseHeaders).with(bio).returns(headers)
-        mime.expects(:findHeader).with(headers, "content-type").returns(MimeHeader.new)
+        mime.expects(:findHeader).with(headers, "content-type").returns(MimeHeader.new("content-type", "foo"))
 
         SMIME.new(mime).readPKCS7(bio, nil)
       end
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel

Reply via email to