aboutsummaryrefslogtreecommitdiff
path: root/src/database
diff options
context:
space:
mode:
authorapocelipes <seve3r@outlook.com>2024-03-20 05:33:46 +0000
committerEmmanuel Odeke <emmanuel@orijtech.com>2024-03-20 14:17:47 +0000
commite39af550f8ea57504510dc5d5fa70ba934f16fa0 (patch)
treede6aee1b6cf6fd80a295ccb0c5ee6e042a85a201 /src/database
parent9c94baa7a49464e5fb780ea2e291249ad2c83c75 (diff)
downloadgo-e39af550f8ea57504510dc5d5fa70ba934f16fa0.tar.gz
go-e39af550f8ea57504510dc5d5fa70ba934f16fa0.zip
database/sql: fix memory leaks in Stmt.removeClosedStmtLocked
Zero out elements before shrinking the slice to avoid memory leaks. Fixes #66410 Change-Id: I8f64c21455761f7f7c8b6fee0b6450b98f691d91 GitHub-Last-Rev: b15586e801199b9674f5bfcb12a848a55f15a80b GitHub-Pull-Request: golang/go#66419 Reviewed-on: https://go-review.googlesource.com/c/go/+/572956 TryBot-Result: Gopher Robot <gobot@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com> Run-TryBot: Emmanuel Odeke <emmanuel@orijtech.com>
Diffstat (limited to 'src/database')
-rw-r--r--src/database/sql/sql.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index b5facdbf2a..36995a1059 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -2684,6 +2684,8 @@ func (s *Stmt) removeClosedStmtLocked() {
for i := 0; i < len(s.css); i++ {
if s.css[i].dc.dbmuClosed {
s.css[i] = s.css[len(s.css)-1]
+ // Zero out the last element (for GC) before shrinking the slice.
+ s.css[len(s.css)-1] = connStmt{}
s.css = s.css[:len(s.css)-1]
i--
}