From 60a51c6b32960822d3987ea7d2816c65bdbcb314 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Thu, 29 Oct 2020 09:17:34 +0900 Subject: [PATCH] Fix incorrect placement of pfree() in pg_relation_check_pages() This would cause the function to crash when more than one page is considered as broken and reported in the SRF. Reported-by: Noriyoshi Shinoda Discussion: https://postgr.es/m/TU4PR8401MB11523D42C315AAF822E74275EE170@TU4PR8401MB1152.NAMPRD84.PROD.OUTLOOK.COM --- src/backend/utils/adt/pagefuncs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/adt/pagefuncs.c b/src/backend/utils/adt/pagefuncs.c index b6a23a2a4f..368ada515c 100644 --- a/src/backend/utils/adt/pagefuncs.c +++ b/src/backend/utils/adt/pagefuncs.c @@ -220,10 +220,10 @@ check_relation_fork(TupleDesc tupdesc, Tuplestorestate *tupstore, /* Save the corrupted blocks in the tuplestore. */ tuplestore_putvalues(tupstore, tupdesc, values, nulls); - - pfree(path); } + pfree(path); + /* Pop the error context stack */ error_context_stack = errcallback.previous; }