globalsign / mgo

The MongoDB driver for Go
Other
1.97k stars 232 forks source link

Panic With ObjectIdHex(s string) #402

Open zjzjzjzj1874 opened 2 years ago

zjzjzjzj1874 commented 2 years ago

It is very danger with mgo/bson/bson.go.212,see code; if anyone else who wanted to change request args to mongoDB objectID, the code maybe like this:

objID := bson.ID
if IsObjectIdHex(req.ObjectID) {
    objID = ObjectIdHex(req.ObjectID)
}else {
    // TODO do else logic
}

And Why not add like this:

if objID,err := MaybeObjectIdHex(req.ObjectID);err != nil {
    // TODO add return logic
    return
}

    // TODO do correct logic

Any way, panic in runtime is very unfriendly for every programmer.