diff options
author | Daniel Theophanes <kardianos@gmail.com> | 2018-03-25 16:58:27 -0700 |
---|---|---|
committer | Brad Fitzpatrick <bradfitz@golang.org> | 2018-11-01 22:08:28 +0000 |
commit | edd28f1e6dd7cb2fe053857b72e43a8defa8d718 (patch) | |
tree | a96559a5e5284ee7c1be7583fd791a036179fa61 | |
parent | fba2c4d76ba2beeff094e4116c44d3f121601ccd (diff) | |
download | go-edd28f1e6dd7cb2fe053857b72e43a8defa8d718.tar.gz go-edd28f1e6dd7cb2fe053857b72e43a8defa8d718.zip |
[release-branch.go1.10] 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.
Updates #24445
Fixes #25235
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: Alexey Palazhchenko <alexey.palazhchenko@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
(cherry picked from commit b98ffdf859f0fec2acb1765bf5b62ce1e4587c2b)
Reviewed-on: https://go-review.googlesource.com/c/146778
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Katie Hockman <katie@golang.org>
-rw-r--r-- | src/database/sql/sql.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go index 8f5588ed26..719be91043 100644 --- a/src/database/sql/sql.go +++ b/src/database/sql/sql.go @@ -1070,7 +1070,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) } } |