changeset 6715:f8c57b2df51a

2006-03-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> * base64.c (base64_encode): Do not read past end of array with unsanitized input on systems with CHAR_BIT > 8.
author Simon Josefsson <simon@josefsson.org>
date Fri, 24 Mar 2006 12:36:06 +0000
parents 7aff60768f4e
children 2c14f8d1d5eb
files lib/ChangeLog lib/base64.c
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-24  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+	* 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  <eggert@cs.ucla.edu>
 
 	* regex.h (regoff_t) [defined _REGEX_LARGE_OFFSETS]:
--- 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)