]> granicus.if.org Git - postgresql/commit
Initialize padding bytes in btree_gist varbit support.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 13 May 2014 11:16:28 +0000 (14:16 +0300)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 13 May 2014 12:27:36 +0000 (15:27 +0300)
commitc87c43f087c569b7ceaa3fc25021dd897e4ca7c4
tree2973ba763e48a9382c16927c4e49f9f13c443a15
parent9cb9d75246afa443d500dc74563d61956e8deaa9
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.
contrib/btree_gist/btree_bit.c