diff --git a/decode.go b/decode.go index fe89215..a0757a3 100644 --- a/decode.go +++ b/decode.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Represents JSON data structure using native Go types: booleans, floats, +// Represents bencode data structure using native Go types: booleans, floats, // strings, arrays, and maps. package bencode diff --git a/struct.go b/struct.go index 9daa55a..5e75c07 100644 --- a/struct.go +++ b/struct.go @@ -279,6 +279,12 @@ func (b *structBuilder) Key(k string) Builder { // func Unmarshal(r io.Reader, val interface{}) (err os.Error) { + // If e represents a value, the answer won't get back to the + // caller. Make sure it's a pointer. + if _, ok := reflect.Typeof(val).(*reflect.PtrType); !ok { + err = os.ErrorString("Attempt to unmarshal into a non-pointer") + return + } err = UnmarshalValue(r, reflect.NewValue(val)) return }