]> diplodocus.org Git - nmh/commitdiff
Just show relevant portion of invalid encoded string.
authorDavid Levine <levinedl@acm.org>
Sat, 5 Nov 2016 13:49:59 +0000 (09:49 -0400)
committerDavid Levine <levinedl@acm.org>
Sat, 5 Nov 2016 13:49:59 +0000 (09:49 -0400)
sbr/base64.c

index 79d7aa9..6a30e2f 100644 (file)
@@ -259,7 +259,7 @@ decodeBase64 (const char *encoded, unsigned char **decoded, size_t *len,
                 }
                 if (skip  ||  (((unsigned char) *cp) & 0x80)  ||
                     (value = b642nib[((unsigned char) *cp) & 0x7f]) > 0x3f) {
-                    advise (NULL, "invalid BASE64 encoding in %s", encoded);
+                    advise (NULL, "invalid BASE64 encoding in %s", cp);
                     charstring_free (decoded_c);
                     *decoded = NULL;
 
@@ -307,7 +307,12 @@ test_end:
     }
 
     if (! self_delimiting  &&  bitno != 18) {
-        advise (NULL, "premature ending (bitno %d) in %s", bitno, encoded);
+        int i;
+
+        /* Show some context for the error. */
+        for (i = 0; i < 20  &&  cp > encoded; ++i, --cp) {}
+        advise (NULL, "premature ending (bitno %d) near %s", bitno,
+                cp ? cp : encoded);
         charstring_free (decoded_c);
         *decoded = NULL;