diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-19 13:23:02 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-06-19 15:09:00 +0200 |
commit | bee7973e52a184a9bde60b5cda7a2c47c97e36ef (patch) | |
tree | dac3c06648c6b864a10bb0a82afcda19bada5289 | |
parent | 0c0659dc50dc17b267072f95c6e1ebddcc91e82d (diff) | |
download | php-git-bee7973e52a184a9bde60b5cda7a2c47c97e36ef.tar.gz |
Use unsigned chars in php_uuencode()
Avoid shift UB on signed integers.
-rw-r--r-- | ext/standard/uuencode.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/ext/standard/uuencode.c b/ext/standard/uuencode.c index bfe605a49b..dbc99a9634 100644 --- a/ext/standard/uuencode.c +++ b/ext/standard/uuencode.c @@ -66,16 +66,16 @@ PHPAPI zend_string *php_uuencode(char *src, size_t src_len) /* {{{ */ { size_t len = 45; - char *p, *s, *e, *ee; + unsigned char *p, *s, *e, *ee; zend_string *dest; /* encoded length is ~ 38% greater than the original Use 1.5 for easier calculation. */ dest = zend_string_safe_alloc(src_len/2, 3, 46, 0); - p = ZSTR_VAL(dest); - s = src; - e = src + src_len; + p = (unsigned char *) ZSTR_VAL(dest); + s = (unsigned char *) src; + e = s + src_len; while ((s + 3) < e) { ee = s + len; @@ -122,7 +122,7 @@ PHPAPI zend_string *php_uuencode(char *src, size_t src_len) /* {{{ */ *p++ = '\n'; *p = '\0'; - dest = zend_string_truncate(dest, p - ZSTR_VAL(dest), 0); + dest = zend_string_truncate(dest, (char *) p - ZSTR_VAL(dest), 0); return dest; } /* }}} */ |