Initialize padding bytes in btree_gist varbit support.

Heikki Linnakangas <heikki.linnakangas@iki.fi>

Commit: 0d8d0d027723d4470a9e2571c499752aa6d8df7a
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: 2014-05-13T12:27:21Z
Releases: 9.2.9
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