Fix dec64table[] OOB read in b64decode()
[exim.git] / src / src / base64.c
index dbbd6a40e0cdf6e91dfc1cf9e60bcb2a8e9a5d4c..e63522ec4d5bc4a002bc8ca84fcd40a63339ddc4 100644 (file)
@@ -173,7 +173,7 @@ while ((x = *code++) != 0)
 
   while (isspace(y = *code++)) ;
   /* debug_printf("b64d: '%c'\n", y); */
-  if (y == 0 || (y = dec64table[y]) == 255)
+  if (y > 127 || (y = dec64table[y]) == 255)
     return -1;
 
   *result++ = (x << 2) | (y >> 4);