]> granicus.if.org Git - php/commitdiff
Accept int parameter in the first place
authorChristoph M. Becker <cmbecker69@gmx.de>
Fri, 1 Nov 2019 16:25:27 +0000 (17:25 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Fri, 1 Nov 2019 18:15:48 +0000 (19:15 +0100)
This is more liberal then before, where that parameter (if given) had
to be IS_LONG, while now it would be converted to int according to weak
typing rules.  This is, however, more what a developer would expect.

ext/openssl/openssl.c

index 94335fadf9b1efac15cf4a52c9e5425a1f491d20..9f59546650d78a5ab105250528a4f1fb293539c2 100644 (file)
@@ -1507,13 +1507,12 @@ PHP_FUNCTION(openssl_spki_new)
        const char *spkac = "SPKAC=";
        zend_long algo = OPENSSL_ALGO_MD5;
 
-       zval *method = NULL;
        zval * zpkey = NULL;
        EVP_PKEY * pkey = NULL;
        NETSCAPE_SPKI *spki=NULL;
        const EVP_MD *mdtype;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs|z", &zpkey, &challenge, &challenge_len, &method) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS(), "rs|l", &zpkey, &challenge, &challenge_len, &algo) == FAILURE) {
                return;
        }
        RETVAL_FALSE;
@@ -1528,14 +1527,6 @@ PHP_FUNCTION(openssl_spki_new)
                goto cleanup;
        }
 
-       if (method != NULL) {
-               if (Z_TYPE_P(method) == IS_LONG) {
-                       algo = Z_LVAL_P(method);
-               } else {
-                       php_error_docref(NULL, E_WARNING, "Algorithm must be of supported type");
-                       goto cleanup;
-               }
-       }
        mdtype = php_openssl_get_evp_md_from_algo(algo);
 
        if (!mdtype) {