Commit b98ffdf8 authored by Daniel Theophanes's avatar Daniel Theophanes

database/sql: check for nil connRequest.conn before use

The connRequest may return a nil conn value. However in a rare
case that is difficult to test for it was being passed to
DB.putConn without a nil check. This was an error as this
made no sense if the driverConn is nil. This also caused
a panic in putConn.

A test for this would be nice, but didn't find a sane
way to test for this condition.

Fixes #24445

Change-Id: I827316e856788a5a3ced913f129bb5869b7bcf68
Reviewed-on: https://go-review.googlesource.com/102477
Run-TryBot: Daniel Theophanes <kardianos@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarAlexey Palazhchenko <alexey.palazhchenko@gmail.com>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent b9c8e870
......@@ -1098,7 +1098,7 @@ func (db *DB) conn(ctx context.Context, strategy connReuseStrategy) (*driverConn
select {
default:
case ret, ok := <-req:
if ok {
if ok && ret.conn != nil {
db.putConn(ret.conn, ret.err, false)
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment