Initialize padding bytes in btree_gist varbit support.
Heikki Linnakangas <heikki.linnakangas@iki.fi>
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
| Path | Change | +/− |
|---|---|---|
| contrib/btree_gist/btree_bit.c | modified | +8 −4 |