Skip to content

Commit ca06e3a

Browse files
committed
Do not assume a slice is a []byte
1 parent c785f06 commit ca06e3a

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

decoder.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,15 +201,19 @@ func (d *decoder) indirect(result reflect.Value) reflect.Value {
201201
return result
202202
}
203203

204+
var sliceType = reflect.TypeOf([]byte{})
205+
204206
func (d *decoder) unmarshalBytes(size uint, offset uint, result reflect.Value) (uint, error) {
205207
value, newOffset, err := d.decodeBytes(size, offset)
206208
if err != nil {
207209
return 0, err
208210
}
209211
switch result.Kind() {
210212
case reflect.Slice:
211-
result.SetBytes(value)
212-
return newOffset, nil
213+
if result.Type() == sliceType {
214+
result.SetBytes(value)
215+
return newOffset, nil
216+
}
213217
case reflect.Interface:
214218
if result.NumMethod() == 0 {
215219
result.Set(reflect.ValueOf(value))

0 commit comments

Comments
 (0)