From 4039327b1a657f6e080b709ffefe05bf6e51ef24 Mon Sep 17 00:00:00 2001 From: Hugo Dutka Date: Wed, 18 Jun 2025 21:44:58 +0200 Subject: [PATCH] chore: check version.Err() after version.Next() in ConnectToPostgres (#18437) --- cli/server.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cli/server.go b/cli/server.go index d9badd02d9..0cc7b0edf2 100644 --- a/cli/server.go +++ b/cli/server.go @@ -2360,10 +2360,12 @@ func ConnectToPostgres(ctx context.Context, logger slog.Logger, driver string, d return nil, xerrors.Errorf("get postgres version: %w", err) } defer version.Close() - if version.Err() != nil { - return nil, xerrors.Errorf("version select: %w", version.Err()) - } if !version.Next() { + // it's critical we assign to the err variable, otherwise the defer statement + // that runs db.Close() will not execute it + if err = version.Err(); err != nil { + return nil, xerrors.Errorf("no rows returned for version select: %w", err) + } return nil, xerrors.Errorf("no rows returned for version select") } var versionNum int