From: Simon Josefsson Date: Fri, 24 Mar 2006 12:36:06 +0000 (+0000) Subject: 2006-03-24 Ralf Wildenhues X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e12ea14e1cf90b6efcbe644c0f019dc434f09481;hp=9f77158ba81506317b18945813cebcdafbb249a6;p=pspp 2006-03-24 Ralf Wildenhues * base64.c (base64_encode): Do not read past end of array with unsanitized input on systems with CHAR_BIT > 8. --- diff --git a/lib/ChangeLog b/lib/ChangeLog index fed0610a72..75a0866a07 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,8 @@ +2006-03-24 Ralf Wildenhues + + * base64.c (base64_encode): Do not read past end of array with + unsanitized input on systems with CHAR_BIT > 8. + 2006-03-16 Paul Eggert * regex.h (regoff_t) [defined _REGEX_LARGE_OFFSETS]: diff --git a/lib/base64.c b/lib/base64.c index 7682f859d3..1fe719c95c 100644 --- a/lib/base64.c +++ b/lib/base64.c @@ -74,7 +74,7 @@ base64_encode (const char *restrict in, size_t inlen, while (inlen && outlen) { - *out++ = b64str[to_uchar (in[0]) >> 2]; + *out++ = b64str[(to_uchar (in[0]) >> 2) & 0x3f]; if (!--outlen) break; *out++ = b64str[((to_uchar (in[0]) << 4)