]> 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:15:13 +0000 (15:15 +0300)
commit540ac7cea919623f691b20892ccc50e5e33b5009
treecd4a3b6e87e85a6be2bd9d798130b63c9ea57562
parent5a90ac29c44f0dabf1e3a7b0443ba772cf206e2e
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