# HG changeset patch # User Simon Josefsson # Date 1143203766 0 # Node ID f8c57b2df51a4b03edf4d20e5960ab270e57f288 # Parent 7aff60768f4e751623b102eb4005fc5f455dafd0 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 --- 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 --- a/lib/base64.c +++ b/lib/base64.c @@ -74,7 +74,7 @@ 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)