mirror of
https://github.com/json-iterator/go.git
synced 2025-02-19 19:59:49 +02:00
fix #274, unescape before base64 decode
This commit is contained in:
parent
6c702ce12a
commit
37cc313d18
@ -416,16 +416,11 @@ func (codec *base64Codec) Decode(ptr unsafe.Pointer, iter *Iterator) {
|
||||
}
|
||||
switch iter.WhatIsNext() {
|
||||
case StringValue:
|
||||
encoding := base64.StdEncoding
|
||||
src := iter.SkipAndReturnBytes()
|
||||
src = src[1 : len(src)-1]
|
||||
decodedLen := encoding.DecodedLen(len(src))
|
||||
dst := make([]byte, decodedLen)
|
||||
len, err := encoding.Decode(dst, src)
|
||||
src := iter.ReadString()
|
||||
dst, err := base64.StdEncoding.DecodeString(src)
|
||||
if err != nil {
|
||||
iter.ReportError("decode base64", err.Error())
|
||||
} else {
|
||||
dst = dst[:len]
|
||||
codec.sliceType.UnsafeSet(ptr, unsafe.Pointer(&dst))
|
||||
}
|
||||
case ArrayValue:
|
||||
|
@ -20,5 +20,8 @@ func init() {
|
||||
}, unmarshalCase{
|
||||
ptr: (*[]byte)(nil),
|
||||
input: `"aGVsbG8="`,
|
||||
}, unmarshalCase{
|
||||
ptr: (*[]byte)(nil),
|
||||
input: `"c3ViamVjdHM\/X2Q9MQ=="`,
|
||||
})
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user