]> granicus.if.org Git - php/commitdiff
fix segfault/leak, add test
authorAntony Dovgal <tony2001@php.net>
Wed, 30 Aug 2006 21:51:08 +0000 (21:51 +0000)
committerAntony Dovgal <tony2001@php.net>
Wed, 30 Aug 2006 21:51:08 +0000 (21:51 +0000)
ext/openssl/openssl.c
ext/openssl/tests/003.phpt [new file with mode: 0644]

index dc22923814bba6cb96febd7cd0c929cd71a6bf73..4bcdeac4dfe91cf6096f38d292adccff54ecf45d 100644 (file)
@@ -807,7 +807,7 @@ static X509 * php_openssl_x509_from_zval(zval ** val, int makeresource, long * r
        }
 
        /* force it to be a string and check if it refers to a file */
-       convert_to_string_ex(val);
+       convert_to_string(*val);
 
        if (Z_STRLEN_PP(val) > 7 && memcmp(Z_STRVAL_PP(val), "file://", sizeof("file://") - 1) == 0) {
                /* read cert from the named file */
diff --git a/ext/openssl/tests/003.phpt b/ext/openssl/tests/003.phpt
new file mode 100644 (file)
index 0000000..6c129f8
--- /dev/null
@@ -0,0 +1,42 @@
+--TEST--
+openssl_pkcs7_decrypt() and invalid parameters
+--SKIPIF--
+<?php if (!extension_loaded("openssl")) print "skip"; ?>
+--FILE--
+<?php
+
+function myErrorHandler($errno, $errstr, $errfile, $errline) {
+var_dump($errstr);
+} 
+set_error_handler("myErrorHandler"); 
+
+$a = 1; 
+$b = 1; 
+$c = new stdclass; 
+$d = new stdclass; 
+
+var_dump(openssl_pkcs7_decrypt($a, $b, $c, $d));
+var_dump($c);
+
+var_dump(openssl_pkcs7_decrypt($b, $b, $b, $b));
+var_dump(openssl_pkcs7_decrypt($a, $b, "", ""));
+var_dump(openssl_pkcs7_decrypt($a, $b, true, false));
+var_dump(openssl_pkcs7_decrypt($a, $b, 0, 0));
+
+echo "Done\n";
+?>
+--EXPECTF--    
+string(57) "Object of class stdClass could not be converted to string"
+string(45) "Object of class stdClass to string conversion"
+string(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert"
+bool(false)
+string(6) "Object"
+string(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert"
+bool(false)
+string(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert"
+bool(false)
+string(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert"
+bool(false)
+string(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert"
+bool(false)
+Done