diff options
author | Nikita Popov <nikic@php.net> | 2016-03-25 20:23:04 +0100 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2016-03-25 20:23:04 +0100 |
commit | bd90f5507f63b2b624c9ad04668c67cc3d1b8952 (patch) | |
tree | 024de0000483e46870ee589fa10b50ed902474e8 /ext/standard/crypt.c | |
parent | 1929fc9b16c836c1449dee3fd3570031ff8dcba1 (diff) | |
parent | 54da966883bacf28808e26eeda48fe38e21b118e (diff) | |
download | php-git-bd90f5507f63b2b624c9ad04668c67cc3d1b8952.tar.gz |
Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
ext/standard/crypt.c
Diffstat (limited to 'ext/standard/crypt.c')
-rw-r--r-- | ext/standard/crypt.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/ext/standard/crypt.c b/ext/standard/crypt.c index 6bc90e2b07..66b37eb79e 100644 --- a/ext/standard/crypt.c +++ b/ext/standard/crypt.c @@ -246,6 +246,13 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch } #else + if (salt[0] != '$' && salt[0] != '_' && (!IS_VALID_SALT_CHARACTER(salt[0]) || !IS_VALID_SALT_CHARACTER(salt[1]))) { + if (!quiet) { + /* error consistently about invalid DES fallbacks */ + php_error_docref(NULL, E_DEPRECATED, DES_INVALID_SALT_ERROR); + } + } + # if defined(HAVE_CRYPT_R) && (defined(_REENTRANT) || defined(_THREAD_SAFE)) { # if defined(CRYPT_R_STRUCT_CRYPT_DATA) @@ -254,24 +261,23 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch # elif defined(CRYPT_R_CRYPTD) CRYPTD buffer; # else -# error Data struct used by crypt_r() is unknown. Please report. +# error Data struct used by crypt_r() is unknown. Please report. # endif - if (salt[0] != '$' && salt[0] != '_' && (!IS_VALID_SALT_CHARACTER(salt[0]) || !IS_VALID_SALT_CHARACTER(salt[1]))) { - if (!quiet) { - /* error consistently about invalid DES fallbacks */ - php_error_docref(NULL, E_DEPRECATED, DES_INVALID_SALT_ERROR); - } - } crypt_res = crypt_r(password, salt, &buffer); - if (!crypt_res || (salt[0] == '*' && salt[1] == '0')) { - return NULL; - } else { - result = zend_string_init(crypt_res, strlen(crypt_res), 0); - return result; - } } +# elif defined(HAVE_CRYPT) + crypt_res = crypt(password, salt); +# else +# error No crypt() implementation # endif #endif + + if (!crypt_res || (salt[0] == '*' && salt[1] == '0')) { + return NULL; + } else { + result = zend_string_init(crypt_res, strlen(crypt_res), 0); + return result; + } } /* }}} */ |