summaryrefslogtreecommitdiff
path: root/src/pkg/encoding/base64/base64.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/encoding/base64/base64.go')
-rw-r--r--src/pkg/encoding/base64/base64.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/pkg/encoding/base64/base64.go b/src/pkg/encoding/base64/base64.go
index 55f9f67a4..f8a51a4e7 100644
--- a/src/pkg/encoding/base64/base64.go
+++ b/src/pkg/encoding/base64/base64.go
@@ -230,7 +230,12 @@ func (enc *Encoding) decode(dst, src []byte) (n int, end bool, err error) {
if in == '=' && j >= 2 && len(src) < 4 {
// We've reached the end and there's
// padding
+ if len(src) == 0 && j == 2 {
+ // not enough padding
+ return n, false, CorruptInputError(len(osrc))
+ }
if len(src) > 0 && src[0] != '=' {
+ // incorrect padding
return n, false, CorruptInputError(len(osrc) - len(src) - 1)
}
dlen = j