]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.6'
authorJakub Zelenka <bukka@php.net>
Thu, 27 Aug 2015 19:17:33 +0000 (20:17 +0100)
committerJakub Zelenka <bukka@php.net>
Thu, 27 Aug 2015 19:17:33 +0000 (20:17 +0100)
1  2 
ext/openssl/openssl.c

index cf05c1b81555bd3454eb839bd0301f92083da8ab,0421524d64c8e9705e0425f709da743fd1ee392e..2ba50c9cc5bd96c0de24f5db574baacf46c8a153
@@@ -3625,18 -3593,14 +3625,15 @@@ PHP_FUNCTION(openssl_pkey_new
                    if (pkey) {
                                DH *dh = DH_new();
                                if (dh) {
 -                                      OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, p);
 -                                      OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, g);
 -                                      OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, priv_key);
 -                                      OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, pub_key);
 +                                      OPENSSL_PKEY_SET_BN(Z_ARRVAL_P(data), dh, p);
 +                                      OPENSSL_PKEY_SET_BN(Z_ARRVAL_P(data), dh, g);
 +                                      OPENSSL_PKEY_SET_BN(Z_ARRVAL_P(data), dh, priv_key);
 +                                      OPENSSL_PKEY_SET_BN(Z_ARRVAL_P(data), dh, pub_key);
-                                       if (dh->p && dh->g) {
-                                               if (!dh->pub_key) {
-                                                       DH_generate_key(dh);
-                                               }
-                                               if (EVP_PKEY_assign_DH(pkey, dh)) {
-                                                       ZVAL_COPY_VALUE(return_value, zend_list_insert(pkey, le_key));
-                                                       return;
-                                               }
+                                       if (dh->p && dh->g &&
+                                                       (dh->pub_key || DH_generate_key(dh)) &&
+                                                       EVP_PKEY_assign_DH(pkey, dh)) {
 -                                              RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
++                                              ZVAL_COPY_VALUE(return_value, zend_list_insert(pkey, le_key));
++                                              return;
                                        }
                                        DH_free(dh);
                                }