• Heikki Linnakangas's avatar
    Initialize padding bytes in btree_gist varbit support. · 540ac7ce
    Heikki Linnakangas authored
    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.
    540ac7ce
btree_bit.c 4.41 KB