Initialize padding bytes in btree_gist varbit support.

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: e31d77c96f665db24c165523a4b1b44728d185b4
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2014-05-13T12:27:43Z
Releases: 8.4.22
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.

Files

PathChange+/−
contrib/btree_gist/btree_bit.c modified +8 −4