I've been currently working on support of -sanitize=use-after-scope in the GCC 
compiler and
I decided to use postgresql as my test-case. The sanitation poisons every stack 
variable at the
very beginning of a function, unpoisons a variable at the beginning of scope 
definition and finally
poisons the variable again at the end of scope.

Following patch fixes issues seen by the sanitizer. Hope it's acceptable?
With the patch applied, ASAN (with the new sanitization) works fine.

diff --git a/src/backend/access/spgist/spgdoinsert.c b/src/backend/access/spgist/spgdoinsert.c
index f090ca5..ff986c2 100644
--- a/src/backend/access/spgist/spgdoinsert.c
+++ b/src/backend/access/spgist/spgdoinsert.c
@@ -1871,6 +1871,10 @@ spgdoinsert(Relation index, SpGistState *state,
 	SPPageDesc	current,
 	FmgrInfo   *procinfo = NULL;
+	SpGistInnerTuple innerTuple;
+	spgChooseIn in;
+	spgChooseOut out;
 	 * Look up FmgrInfo of the user-defined choose function once, to save
@@ -2044,9 +2048,6 @@ spgdoinsert(Relation index, SpGistState *state,
 			 * Apply the opclass choose function to figure out how to insert
 			 * the given datum into the current inner tuple.
-			SpGistInnerTuple innerTuple;
-			spgChooseIn in;
-			spgChooseOut out;
 			 * spgAddNode and spgSplitTuple cases will loop back to here to
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to