tony2001 Wed Aug 30 21:50:28 2006 UTC Added files: /php-src/ext/openssl/tests 003.phpt
Modified files: /php-src/ext/openssl openssl.c Log: fix segfault/leak, add test http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/openssl.c?r1=1.117&r2=1.118&diff_format=u Index: php-src/ext/openssl/openssl.c diff -u php-src/ext/openssl/openssl.c:1.117 php-src/ext/openssl/openssl.c:1.118 --- php-src/ext/openssl/openssl.c:1.117 Wed Aug 30 20:49:44 2006 +++ php-src/ext/openssl/openssl.c Wed Aug 30 21:50:28 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: openssl.c,v 1.117 2006/08/30 20:49:44 tony2001 Exp $ */ +/* $Id: openssl.c,v 1.118 2006/08/30 21:50:28 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -773,7 +773,7 @@ } /* 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 */ http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/003.phpt?view=markup&rev=1.1 Index: php-src/ext/openssl/tests/003.phpt +++ php-src/ext/openssl/tests/003.phpt --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 --UEXPECTF-- unicode(64) "Object of class stdClass could not be converted to binary string" unicode(45) "Object of class stdClass to string conversion" unicode(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert" bool(false) string(6) "Object" unicode(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert" bool(false) unicode(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert" bool(false) unicode(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert" bool(false) unicode(66) "openssl_pkcs7_decrypt(): unable to coerce parameter 3 to x509 cert" bool(false) Done -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php