From: Shinnosuke Sawada <6warashi9@gmail.com> Date: Mon, 17 Aug 2020 11:37:51 +0000 (+0900) Subject: database/sql: shortestIdleTimeLocked correct min comparison X-Git-Tag: go1.16beta1~1159 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4fc3896e7933e31822caa50e024d4e139befc75f;p=gostls13.git database/sql: shortestIdleTimeLocked correct min comparison When zero or less, maxIdleTime and maxLifetime means unlimited. Helper function shortestIdleTimeLocked must not return the minimum of the two until both are verified to be greater then zero. Fixes #40841 Change-Id: I1130332baf4ad259cd90c10f4221f5def8510655 Reviewed-on: https://go-review.googlesource.com/c/go/+/248817 Reviewed-by: Daniel Theophanes --- diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go index 0b85db66b9..e3580698fd 100644 --- a/src/database/sql/sql.go +++ b/src/database/sql/sql.go @@ -869,6 +869,13 @@ func (db *DB) maxIdleConnsLocked() int { } func (db *DB) shortestIdleTimeLocked() time.Duration { + if db.maxIdleTime <= 0 { + return db.maxLifetime + } + if db.maxLifetime <= 0 { + return db.maxIdleTime + } + min := db.maxIdleTime if min > db.maxLifetime { min = db.maxLifetime