Skip to content

Commit bee7973

Browse files
committed
Use unsigned chars in php_uuencode()
Avoid shift UB on signed integers.
1 parent 0c0659d commit bee7973

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

ext/standard/uuencode.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@
6666
PHPAPI zend_string *php_uuencode(char *src, size_t src_len) /* {{{ */
6767
{
6868
size_t len = 45;
69-
char *p, *s, *e, *ee;
69+
unsigned char *p, *s, *e, *ee;
7070
zend_string *dest;
7171

7272
/* encoded length is ~ 38% greater than the original
7373
Use 1.5 for easier calculation.
7474
*/
7575
dest = zend_string_safe_alloc(src_len/2, 3, 46, 0);
76-
p = ZSTR_VAL(dest);
77-
s = src;
78-
e = src + src_len;
76+
p = (unsigned char *) ZSTR_VAL(dest);
77+
s = (unsigned char *) src;
78+
e = s + src_len;
7979

8080
while ((s + 3) < e) {
8181
ee = s + len;
@@ -122,7 +122,7 @@ PHPAPI zend_string *php_uuencode(char *src, size_t src_len) /* {{{ */
122122
*p++ = '\n';
123123
*p = '\0';
124124

125-
dest = zend_string_truncate(dest, p - ZSTR_VAL(dest), 0);
125+
dest = zend_string_truncate(dest, (char *) p - ZSTR_VAL(dest), 0);
126126
return dest;
127127
}
128128
/* }}} */

0 commit comments

Comments
 (0)