Hi, On 2016-02-15 14:37:28 +0100, Martin Liška wrote: > 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.
Generally sounds like a good check. > 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, > parent; > 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; But I'm not immediately seing why this is necessary? Is this about battling a false positive? Greetings, Andres Freund -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers