pgsql: Initialize padding bytes in btree_gist varbit support. - Mailing list pgsql-committers

From Heikki Linnakangas
Subject pgsql: Initialize padding bytes in btree_gist varbit support.
Date
Msg-id E1WkBsM-0004kP-Jg@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Initialize padding bytes in btree_gist varbit support.

The code expands a varbit gist leaf key to a node key by copying the bit
data twice in a varlen datum, as both the lower and upper key. The lower key
was expanded to INTALIGN size, but the padding bytes were not initialized.
That's a problem because when the lower/upper keys are compared, the padding
bytes are used compared too, when the values are otherwise equal. That could
lead to incorrect query results.

REINDEX is advised for any btree_gist indexes on bit or bit varying data
type, to fix any garbage padding bytes on disk.

Per Valgrind, reported by Andres Freund. Backpatch to all supported
versions.

Branch
------
REL9_2_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/0d8d0d027723d4470a9e2571c499752aa6d8df7a

Modified Files
--------------
contrib/btree_gist/btree_bit.c |   12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)


pgsql-committers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: pgsql: Initialize padding bytes in btree_gist varbit support.
Next
From: Heikki Linnakangas
Date:
Subject: pgsql: Initialize padding bytes in btree_gist varbit support.