diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-05-31 11:51:54 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-03 09:17:12 +0200 |
commit | 1df8175b6153865e2f12394792e3ad4c7c8e48ea (patch) | |
tree | 7a5dc832d7457a180570e298761abf946dbabe3a /ext/openssl/openssl.c | |
parent | 29d79dc2e55844cb42f975ef2f0c21aedbfef183 (diff) | |
download | php-git-1df8175b6153865e2f12394792e3ad4c7c8e48ea.tar.gz |
Convert fetch_resource warnings into TypeErrors
More type checks that are not part of zpp and should generate a
TypeError in PHP 8.
Diffstat (limited to 'ext/openssl/openssl.c')
-rw-r--r-- | ext/openssl/openssl.c | 76 |
1 files changed, 57 insertions, 19 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 8cf294b361..31c2fcce0d 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1848,7 +1848,9 @@ PHP_FUNCTION(openssl_spki_new) pkey = php_openssl_evp_from_zval(zpkey, 0, challenge, challenge_len, 1, &keyresource); if (pkey == NULL) { - php_error_docref(NULL, E_WARNING, "Unable to use supplied private key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "Unable to use supplied private key"); + } goto cleanup; } @@ -2848,7 +2850,9 @@ PHP_FUNCTION(openssl_pkcs12_export_to_file) } priv_key = php_openssl_evp_from_zval(zpkey, 0, "", 0, 1, &keyresource); if (priv_key == NULL) { - php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3"); + } goto cleanup; } if (!X509_check_private_key(cert, priv_key)) { @@ -2941,7 +2945,9 @@ PHP_FUNCTION(openssl_pkcs12_export) } priv_key = php_openssl_evp_from_zval(zpkey, 0, "", 0, 1, &keyresource); if (priv_key == NULL) { - php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3"); + } goto cleanup; } if (!X509_check_private_key(cert, priv_key)) { @@ -3344,7 +3350,9 @@ PHP_FUNCTION(openssl_csr_export_to_file) csr = php_openssl_csr_from_zval(zcsr, 0, &csr_resource); if (csr == NULL) { - php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1"); + } return; } @@ -3393,7 +3401,9 @@ PHP_FUNCTION(openssl_csr_export) csr = php_openssl_csr_from_zval(zcsr, 0, &csr_resource); if (csr == NULL) { - php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1"); + } return; } @@ -3444,7 +3454,9 @@ PHP_FUNCTION(openssl_csr_sign) csr = php_openssl_csr_from_zval(zcsr, 0, &csr_resource); if (csr == NULL) { - php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "cannot get CSR from parameter 1"); + } return; } if (zcert) { @@ -3456,7 +3468,9 @@ PHP_FUNCTION(openssl_csr_sign) } priv_key = php_openssl_evp_from_zval(zpkey, 0, "", 0, 1, &keyresource); if (priv_key == NULL) { - php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "cannot get private key from parameter 3"); + } goto cleanup; } if (cert && !X509_check_private_key(cert, priv_key)) { @@ -4563,7 +4577,9 @@ PHP_FUNCTION(openssl_pkey_export_to_file) key = php_openssl_evp_from_zval(zpkey, 0, passphrase, passphrase_len, 0, &key_resource); if (key == NULL) { - php_error_docref(NULL, E_WARNING, "cannot get key from parameter 1"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "cannot get key from parameter 1"); + } RETURN_FALSE; } @@ -4648,7 +4664,9 @@ PHP_FUNCTION(openssl_pkey_export) key = php_openssl_evp_from_zval(zpkey, 0, passphrase, passphrase_len, 0, &key_resource); if (key == NULL) { - php_error_docref(NULL, E_WARNING, "cannot get key from parameter 1"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "cannot get key from parameter 1"); + } RETURN_FALSE; } @@ -5524,7 +5542,9 @@ PHP_FUNCTION(openssl_pkcs7_sign) privkey = php_openssl_evp_from_zval(zprivkey, 0, "", 0, 0, &keyresource); if (privkey == NULL) { - php_error_docref(NULL, E_WARNING, "error getting private key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "error getting private key"); + } goto clean_exit; } @@ -5633,7 +5653,9 @@ PHP_FUNCTION(openssl_pkcs7_decrypt) key = php_openssl_evp_from_zval(recipkey ? recipkey : recipcert, 0, "", 0, 0, &keyresval); if (key == NULL) { - php_error_docref(NULL, E_WARNING, "unable to get private key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "unable to get private key"); + } goto clean_exit; } @@ -5701,7 +5723,9 @@ PHP_FUNCTION(openssl_private_encrypt) pkey = php_openssl_evp_from_zval(key, 0, "", 0, 0, &keyresource); if (pkey == NULL) { - php_error_docref(NULL, E_WARNING, "key param is not a valid private key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "key param is not a valid private key"); + } RETURN_FALSE; } @@ -5762,7 +5786,9 @@ PHP_FUNCTION(openssl_private_decrypt) pkey = php_openssl_evp_from_zval(key, 0, "", 0, 0, &keyresource); if (pkey == NULL) { - php_error_docref(NULL, E_WARNING, "key parameter is not a valid private key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "key parameter is not a valid private key"); + } RETURN_FALSE; } @@ -5829,7 +5855,9 @@ PHP_FUNCTION(openssl_public_encrypt) pkey = php_openssl_evp_from_zval(key, 1, NULL, 0, 0, &keyresource); if (pkey == NULL) { - php_error_docref(NULL, E_WARNING, "key parameter is not a valid public key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "key parameter is not a valid public key"); + } RETURN_FALSE; } @@ -5891,7 +5919,9 @@ PHP_FUNCTION(openssl_public_decrypt) pkey = php_openssl_evp_from_zval(key, 1, NULL, 0, 0, &keyresource); if (pkey == NULL) { - php_error_docref(NULL, E_WARNING, "key parameter is not a valid public key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "key parameter is not a valid public key"); + } RETURN_FALSE; } @@ -5990,7 +6020,9 @@ PHP_FUNCTION(openssl_sign) } pkey = php_openssl_evp_from_zval(key, 0, "", 0, 0, &keyresource); if (pkey == NULL) { - php_error_docref(NULL, E_WARNING, "supplied key param cannot be coerced into a private key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "supplied key param cannot be coerced into a private key"); + } RETURN_FALSE; } @@ -6075,7 +6107,9 @@ PHP_FUNCTION(openssl_verify) pkey = php_openssl_evp_from_zval(key, 1, NULL, 0, 0, &keyresource); if (pkey == NULL) { - php_error_docref(NULL, E_WARNING, "supplied key param cannot be coerced into a public key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "supplied key param cannot be coerced into a public key"); + } RETURN_FALSE; } @@ -6155,7 +6189,9 @@ PHP_FUNCTION(openssl_seal) ZEND_HASH_FOREACH_VAL(pubkeysht, pubkey) { pkeys[i] = php_openssl_evp_from_zval(pubkey, 1, NULL, 0, 0, &key_resources[i]); if (pkeys[i] == NULL) { - php_error_docref(NULL, E_WARNING, "not a public key (%dth member of pubkeys)", i+1); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "not a public key (%dth member of pubkeys)", i+1); + } RETVAL_FALSE; goto clean_exit; } @@ -6253,7 +6289,9 @@ PHP_FUNCTION(openssl_open) pkey = php_openssl_evp_from_zval(privkey, 0, "", 0, 0, &keyresource); if (pkey == NULL) { - php_error_docref(NULL, E_WARNING, "unable to coerce parameter 4 into a private key"); + if (!EG(exception)) { + php_error_docref(NULL, E_WARNING, "unable to coerce parameter 4 into a private key"); + } RETURN_FALSE; } |