aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Theophanes <kardianos@gmail.com>2018-03-25 16:58:27 -0700
committerBrad Fitzpatrick <bradfitz@golang.org>2018-11-01 22:08:28 +0000
commitedd28f1e6dd7cb2fe053857b72e43a8defa8d718 (patch)
treea96559a5e5284ee7c1be7583fd791a036179fa61
parentfba2c4d76ba2beeff094e4116c44d3f121601ccd (diff)
downloadgo-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.go2
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)
}
}