0001-Fix-NULL-pointer-dereference-in-tuplesort.c.patch
text/x-patch
Filename: 0001-Fix-NULL-pointer-dereference-in-tuplesort.c.patch
Type: text/x-patch
Part: 0
Patch
Format: format-patch
Series: patch 0001
Subject: Fix NULL pointer dereference in tuplesort.c
| File | + | − |
|---|---|---|
| src/backend/utils/sort/tuplesort.c | 2 | 1 |
From ce24bff1aad894b607ee1ce67757efe72c5acb93 Mon Sep 17 00:00:00 2001 From: Peter Geoghegan <pg@bowt.ie> Date: Mon, 16 Jan 2017 10:14:02 -0800 Subject: [PATCH] Fix NULL pointer dereference in tuplesort.c This could cause a crash when an external datum tuplesort of a pass-by-value type required multiple passes. --- src/backend/utils/sort/tuplesort.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c index cbaf009..e1e692d 100644 --- a/src/backend/utils/sort/tuplesort.c +++ b/src/backend/utils/sort/tuplesort.c @@ -2800,7 +2800,8 @@ mergeonerun(Tuplesortstate *state) WRITETUP(state, destTape, &state->memtuples[0]); /* recycle the slot of the tuple we just wrote out, for the next read */ - RELEASE_SLAB_SLOT(state, state->memtuples[0].tuple); + if (state->memtuples[0].tuple) + RELEASE_SLAB_SLOT(state, state->memtuples[0].tuple); /* * pull next tuple from the tape, and replace the written-out tuple in -- 2.7.4