aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/sql.go
diff options
context:
space:
mode:
authorPavel <kositsyn.pa@phystech.edu>2021-11-08 14:29:16 +0000
committerIan Lance Taylor <iant@golang.org>2021-11-11 19:46:03 +0000
commit48f1cde942959e2fc3c56973a2986c24d554c82c (patch)
tree9dd1ed1f2f0a5fa4a6659f1383929541bfbf8846 /src/database/sql/sql.go
parentd60a4e69f16f5bc958094af206ac7e47f6bc8b04 (diff)
downloadgo-48f1cde942959e2fc3c56973a2986c24d554c82c.tar.xz
database/sql: prevent closes slices from assigning to free conn
In function connectionCleanerRunLocked append to closing slice affects db.freeConns and vise versa. Sometimes valid connections are closed and some invalid not. Change-Id: I5282f15be3e549533b7d994b17b2060db3c0e7da GitHub-Last-Rev: b3eb3ab6f49c036519f777fc7189e9507010c166 GitHub-Pull-Request: golang/go#49429 Reviewed-on: https://go-review.googlesource.com/c/go/+/362214 Reviewed-by: Daniel Theophanes <kardianos@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/database/sql/sql.go')
-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 5131c08b51..c5b4f50aa7 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -1115,7 +1115,7 @@ func (db *DB) connectionCleanerRunLocked(d time.Duration) (time.Duration, []*dri
c := db.freeConn[i]
if c.returnedAt.Before(idleSince) {
i++
- closing = db.freeConn[:i]
+ closing = db.freeConn[:i:i]
db.freeConn = db.freeConn[i:]
idleClosing = int64(len(closing))
db.maxIdleTimeClosed += idleClosing