]> granicus.if.org Git - php/commitdiff
Fixed bug #68912 (Segmentation fault at openssl_spki_new)
authorXinchen Hui <laruence@php.net>
Mon, 16 Feb 2015 06:16:52 +0000 (14:16 +0800)
committerXinchen Hui <laruence@php.net>
Mon, 16 Feb 2015 06:16:52 +0000 (14:16 +0800)
NEWS
ext/openssl/openssl.c
ext/openssl/tests/bug68912.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 23df097b87f94ab8f7436b069359780851beca32..86ebfd3f59707284176fd16ee8ff2da1213b3753 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,8 @@
   . Bug #68964 (Allowed memory size exhausted with odbc_exec). (Anatol)
 
 - OpenSSL:
-  . Fix bug #61285, #68329, #68046, #41631: encrypted streams don't observe
+  . Fixed bug #68912 (Segmentation fault at openssl_spki_new). (Laruence)
+  . Fixed bug #61285, #68329, #68046, #41631: encrypted streams don't observe
     socket timeouts (Brad Broerman)
 
 - pgsql:
index 655d7f6eb45cbd7188d6664989e9ec80da7864d4..5538ef76da18e15e5f43a003c8ca69a0162a5ebb 100644 (file)
@@ -1532,7 +1532,7 @@ cleanup:
                efree(spkstr);
        }
 
-       if (strlen(s) <= 0) {
+       if (s && strlen(s) <= 0) {
                RETVAL_FALSE;
        }
 
diff --git a/ext/openssl/tests/bug68912.phpt b/ext/openssl/tests/bug68912.phpt
new file mode 100644 (file)
index 0000000..7d763db
--- /dev/null
@@ -0,0 +1,20 @@
+--TEST--
+Bug #68912 (Segmentation fault at openssl_spki_new)
+--SKIPIF--
+<?php 
+if (!extension_loaded("openssl")) die("skip");
+if (!@openssl_pkey_new()) die("skip cannot create private key");
+?>
+--FILE--
+<?php
+
+$var1=xml_parser_create_ns();
+$var2=2; 
+$var3=3; 
+
+openssl_spki_new($var1, $var2, $var3);
+?>
+--EXPECTF--
+Warning: openssl_spki_new(): supplied resource is not a valid OpenSSL X.509/key resource in %sbug68912.php on line %d
+
+Warning: openssl_spki_new(): Unable to use supplied private key in %sbug68912.php on line %d