]> granicus.if.org Git - php/commitdiff
Fixed crash on non-string passphrase and unicode support
authorDmitry Stogov <dmitry@php.net>
Wed, 11 Jul 2007 07:27:20 +0000 (07:27 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 11 Jul 2007 07:27:20 +0000 (07:27 +0000)
ext/openssl/openssl.c

index 7402efaca5fba7db8d38672e1104a03ded6ce6b9..921806c3bfdd68cfaa96c5d7759f5f3c1296f433 100644 (file)
@@ -2258,6 +2258,7 @@ static EVP_PKEY * php_openssl_evp_from_zval(zval ** val, int public_key, char *
                } else {
                        tmp = **zphrase;
                        zval_copy_ctor(&tmp);
+                       convert_to_string(&tmp);
                        passphrase = Z_STRVAL(tmp);
                }
 
@@ -2313,7 +2314,7 @@ static EVP_PKEY * php_openssl_evp_from_zval(zval ** val, int public_key, char *
                /* passing non string values leaks, object uses toString, it returns NULL 
                 * bug38255.phpt
                 */
-               if (!(Z_TYPE_PP(val) == IS_STRING || Z_TYPE_PP(val) == IS_OBJECT)) {
+               if (!(Z_TYPE_PP(val) == IS_STRING || Z_TYPE_PP(val) == IS_UNICODE || Z_TYPE_PP(val) == IS_OBJECT)) {
                        TMP_CLEAN;
                }
                convert_to_string_ex(val);