]> granicus.if.org Git - php/commitdiff
Use unsigned char in _crypt_extended_r
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 19 Jun 2019 11:48:20 +0000 (13:48 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 19 Jun 2019 13:09:00 +0000 (15:09 +0200)
Avoid signed shift UB.

ext/standard/crypt.c
ext/standard/crypt_freesec.c
ext/standard/crypt_freesec.h

index 068d743d1a92c37eafe76fb9d76fb7af4a0f2424..d0b1e6a5a7f1ca0d9d7654655315e2d932f5378b 100644 (file)
@@ -179,7 +179,7 @@ PHPAPI zend_string *php_crypt(const char *password, const int pass_len, const ch
                        memset(&buffer, 0, sizeof(buffer));
                        _crypt_extended_init_r();
 
-                       crypt_res = _crypt_extended_r(password, salt, &buffer);
+                       crypt_res = _crypt_extended_r((const unsigned char *) password, salt, &buffer);
                        if (!crypt_res || (salt[0] == '*' && salt[1] == '0')) {
                                return NULL;
                        } else {
index dc51b30150875f74869b41bd619fa827a298d938..572e5127b16721a82436dcdfae068735b9f4406e 100644 (file)
@@ -607,7 +607,7 @@ des_cipher(const char *in, char *out, uint32_t salt, int count,
 }
 
 char *
-_crypt_extended_r(const char *key, const char *setting,
+_crypt_extended_r(const unsigned char *key, const char *setting,
        struct php_crypt_extended_data *data)
 {
        int             i;
index c102736783a69cdfe9f52ea34863108d698479b9..69271f23a725573fe0ce1a4a00c620a379d7710b 100644 (file)
@@ -28,7 +28,7 @@ struct php_crypt_extended_data {
 
 void _crypt_extended_init(void);
 
-char *_crypt_extended_r(const char *key, const char *setting,
+char *_crypt_extended_r(const unsigned char *key, const char *setting,
        struct php_crypt_extended_data *data);
 
 #endif