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