[GODRIVER-694] UnmarshalExtJSON panics with invalid json Created: 13/Dec/18  Updated: 28/Oct/23  Resolved: 07/Jan/19

Status: Closed
Project: Go Driver
Component/s: JSON & ExtJSON
Affects Version/s: 0.1.0
Fix Version/s: 0.2.0

Type: Bug Priority: Major - P3
Reporter: Aaron Szymanski Assignee: Divjot Arora (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

 

UnmarshalExtJSON panics when provided invalid JSON instead of returning an error.

 

 

 

Example code:

 

bson.UnmarshalExtJSON([]byte(`notjson`), false, &bson.M{})

 

 

Result:

 

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x111be31]goroutine 1 [running]:
mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/bsonrw.(*extJSONValueReader).Type(0x0, 0x18)
        /Users/aarons/go/src/mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/bsonrw/extjson_reader.go:225 +0x11
mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/bsoncodec.DefaultValueDecoders.MapDecodeValue(0xc4200c4070, 0x136d600, 0x1370460, 0x0, 0x126c020, 0xc4200a0020, 0x195, 0x20, 0x1273ec0)
        /Users/aarons/go/src/mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/bsoncodec/default_value_decoders.go:653 +0x1dc
mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/bsoncodec.(DefaultValueDecoders).MapDecodeValue-fm(0xc4200c4070, 0x0, 0x1370460, 0x0, 0x126c020, 0xc4200a0020, 0x195, 0x1370820, 0x126c020)
        /Users/aarons/go/src/mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/bsoncodec/default_value_decoders.go:79 +0x76
mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/bsoncodec.ValueDecoderFunc.DecodeValue(0xc420092a40, 0xc4200c4070, 0x126c000, 0x1370460, 0x0, 0x126c020, 0xc4200a0020, 0x195, 0x104dfb0, 0x18)
        /Users/aarons/go/src/mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/bsoncodec/bsoncodec.go:151 +0x78
mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson.(*Decoder).Decode(0xc4200a6640, 0x12460e0, 0xc4200a0020, 0x1272b60, 0xc4200a6640)
        /Users/aarons/go/src/mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/decoder.go:86 +0x259
mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson.unmarshalFromReader(0xc4200c4070, 0xc42008d600, 0x1370460, 0x0, 0x12460e0, 0xc4200a0020, 0x0, 0x0)
        /Users/aarons/go/src/mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/unmarshal.go:92 +0xea
mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson.UnmarshalExtJSONWithRegistry(0xc4200c4070, 0xc4200f9be0, 0x7, 0x8, 0xc42008d600, 0x12460e0, 0xc4200a0020, 0x1290ca0, 0xc42008d620)
        /Users/aarons/go/src/mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/unmarshal.go:68 +0xca
mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson.UnmarshalExtJSON(0xc4200f9be0, 0x7, 0x8, 0xc4200f9b00, 0x12460e0, 0xc4200a0020, 0x12a81cd, 0x0)
        /Users/aarons/go/src/mdbdriver/vendor/github.com/mongodb/mongo-go-driver/bson/unmarshal.go:60 +0x6f
main.main()
        /Users/aarons/go/src/mdbdriver/main.go:14 +0xce
exit status 2

 



 Comments   
Comment by Githook User [ 07/Jan/19 ]

Author:

{'username': 'divjotarora', 'email': 'divjot.arora@10gen.com', 'name': 'Divjot Arora'}

Message: Change UnmarshalExtJSON to return error for invalid JSON.

GODRIVER-694

Change-Id: I66ba147cd0d71f41cd8ed9b34e21d9b56add6044
Branch: master
https://github.com/mongodb/mongo-go-driver/commit/55ea16db21d9668fff2248fb63afcc8fe337ad53

Generated at Thu Feb 08 08:34:45 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.