]> granicus.if.org Git - postgresql/commitdiff
Improve error messages for bytea decoding failures.
authorRobert Haas <rhaas@postgresql.org>
Wed, 9 Jul 2014 15:04:45 +0000 (11:04 -0400)
committerRobert Haas <rhaas@postgresql.org>
Wed, 9 Jul 2014 15:04:45 +0000 (11:04 -0400)
Craig Ringer

src/backend/utils/adt/encode.c

index 46993baa7b534d61b875dd8fa4c34a8bbd7b96ac..fab4d33d07fb376d6ff48a4badeb13ef7842f400 100644 (file)
@@ -292,7 +292,7 @@ b64_decode(const char *src, unsigned len, char *dst)
                                else
                                        ereport(ERROR,
                                                        (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                                                        errmsg("unexpected \"=\"")));
+                                                        errmsg("unexpected \"=\" while decoding base64 sequence")));
                        }
                        b = 0;
                }
@@ -304,7 +304,7 @@ b64_decode(const char *src, unsigned len, char *dst)
                        if (b < 0)
                                ereport(ERROR,
                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                                                errmsg("invalid symbol")));
+                                                errmsg("invalid symbol '%c' while decoding base64 sequence", (int) c)));
                }
                /* add it to buffer */
                buf = (buf << 6) + b;
@@ -324,7 +324,8 @@ b64_decode(const char *src, unsigned len, char *dst)
        if (pos != 0)
                ereport(ERROR,
                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
-                                errmsg("invalid end sequence")));
+                                errmsg("invalid base64 end sequence"),
+                                errhint("input data is missing padding, truncated, or otherwise corrupted")));
 
        return p - dst;
 }