diff options
author | David Rowley <drowley@postgresql.org> | 2021-07-13 13:28:19 +1200 |
---|---|---|
committer | David Rowley <drowley@postgresql.org> | 2021-07-13 13:28:19 +1200 |
commit | 2fde8e49a24706773d0573d3b8888a76353094fc (patch) | |
tree | b2f5f8987b1502d5a04419d5ad902fc4adc107ff /src | |
parent | 204f646a22f294a359ec463c128d01e1bc9117c5 (diff) | |
download | postgresql-2fde8e49a24706773d0573d3b8888a76353094fc.tar.gz postgresql-2fde8e49a24706773d0573d3b8888a76353094fc.zip |
Robustify tuplesort's free_sort_tuple function
41469253e went to the trouble of removing a theoretical bug from
free_sort_tuple by checking if the tuple was NULL before freeing it. Let's
make this a little more robust by also setting the tuple to NULL so that
should we be called again we won't end up doing a pfree on the already
pfree'd tuple. Per advice from Tom Lane.
Discussion: https://postgr.es/m/3188192.1626136953@sss.pgh.pa.us
Backpatch-through: 9.6, same as 41469253e
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/sort/tuplesort.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c index 52c5ca8b8a4..98d68a143d9 100644 --- a/src/backend/utils/sort/tuplesort.c +++ b/src/backend/utils/sort/tuplesort.c @@ -4701,5 +4701,6 @@ free_sort_tuple(Tuplesortstate *state, SortTuple *stup) { FREEMEM(state, GetMemoryChunkSpace(stup->tuple)); pfree(stup->tuple); + stup->tuple = NULL; } } |