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
> 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;
But I'm not immediately seing why this is necessary? Is this about
battling a false positive?
Sent via pgsql-hackers mailing list (firstname.lastname@example.org)
To make changes to your subscription: