]> sjero.net Git - wget/commitdiff
[svn] Treat input to base64_encode as unsigned chars.
authorhniksic <devnull@localhost>
Sat, 23 Apr 2005 00:20:13 +0000 (17:20 -0700)
committerhniksic <devnull@localhost>
Sat, 23 Apr 2005 00:20:13 +0000 (17:20 -0700)
src/ChangeLog
src/utils.c

index 0e2a850466ad1a8e01565165fee4598c847fc599..f9f4b4f16ce3258dfd469f4249d0dbb3e575fe46 100644 (file)
@@ -1,3 +1,8 @@
+2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * utils.c (base64_encode): Treat input as unsigned chars.
+       Required for correct encoding of binary stuff.
+
 2005-04-23  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * http-ntlm.c: Format the function definitions in an
index 0692bcb339776b28d132f96e8fa2c4961ac5f21d..38700e04d22a68f9f5f5ec25326645297e2da685 100644 (file)
@@ -1825,7 +1825,7 @@ xsleep (double seconds)
 
 #endif /* not WINDOWS */
 
-/* Encode the string S of length LENGTH to base64 format and place it
+/* Encode the string STR of length LENGTH to base64 format and place it
    to B64STORE.  The output will be \0-terminated, and must point to a
    writable buffer of at least 1+BASE64_LENGTH(length) bytes.  It
    returns the length of the resulting base64 data, not counting the
@@ -1835,7 +1835,7 @@ xsleep (double seconds)
    base64 data.  */
 
 int
-base64_encode (const char *s, int length, char *b64store)
+base64_encode (const char *str, int length, char *b64store)
 {
   /* Conversion table.  */
   static char tbl[64] = {
@@ -1849,7 +1849,8 @@ base64_encode (const char *s, int length, char *b64store)
     '4','5','6','7','8','9','+','/'
   };
   int i;
-  unsigned char *p = (unsigned char *) b64store;
+  const unsigned char *s = (const unsigned char *) str;
+  char *p = b64store;
 
   /* Transform the 3x8 bits to 4x6 bits, as required by base64.  */
   for (i = 0; i < length; i += 3)
@@ -1870,7 +1871,7 @@ base64_encode (const char *s, int length, char *b64store)
   /* ...and zero-terminate it.  */
   *p = '\0';
 
-  return p - (unsigned char *) b64store;
+  return p - b64store;
 }
 
 #define IS_ASCII(c) (((c) & 0x80) == 0)