From e67f5820455079ad6cdc1039a8d44314a360841f Mon Sep 17 00:00:00 2001
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Date: Tue, 21 Feb 2023 11:49:54 +0900
Subject: [PATCH] Fix memory leak of psql's \bind

exec_command_bind() is discarding malloc'ed memory blocks returned
from psql_scan_slash_option() after strdup'ed them. To address this
issue, use the returned memory directly instead of making a copy.
---
 src/bin/psql/command.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index b5201edf55..955397ee9d 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -480,7 +480,7 @@ exec_command_bind(PsqlScanState scan_state, bool active_branch)
 				nalloc = nalloc ? nalloc * 2 : 1;
 				pset.bind_params = pg_realloc_array(pset.bind_params, char *, nalloc);
 			}
-			pset.bind_params[nparams - 1] = pg_strdup(opt);
+			pset.bind_params[nparams - 1] = opt;
 		}
 
 		pset.bind_nparams = nparams;
-- 
2.31.1

