bencode/decode.go | 3 +++ bencode/decode_test.go | 2 ++ diff --git a/bencode/decode.go b/bencode/decode.go index 77ddd0d3d950c33b1e7c1c5ee31e3b470e782e2d..903dfe4a477abc2bb6dbbbc8ea6b3967fb7a4275 100644 --- a/bencode/decode.go +++ b/bencode/decode.go @@ -484,5 +484,8 @@ } list = append(list, valuei) } + if list == nil { + list = make([]interface{}, 0, 0) + } return list } diff --git a/bencode/decode_test.go b/bencode/decode_test.go index 3cf5776f203f51a1a5eaa065f4138b347ce015ad..4f06f391a5f1070da83e73057071b55e087a39c8 100644 --- a/bencode/decode_test.go +++ b/bencode/decode_test.go @@ -16,6 +16,8 @@ {"29:unicode test проверка", "unicode test проверка"}, {"d1:ai5e1:b5:helloe", map[string]interface{}{"a": int64(5), "b": "hello"}}, {"li5ei10ei15ei20e7:bencodee", []interface{}{int64(5), int64(10), int64(15), int64(20), "bencode"}}, + {"ldedee", []interface{}{map[string]interface{}{}, map[string]interface{}{}}}, + {"le", []interface{}{}}, } func TestRandomDecode(t *testing.T) {