pgsql: Initialize padding bytes in btree_gist varbit support.

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема pgsql: Initialize padding bytes in btree_gist varbit support.
Дата
Msg-id E1WkBsM-0004kN-I3@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
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.

Branch
------
REL9_3_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/d5b912c905efd531a6228d08c98cd92d49cdd94c

Modified Files
--------------
contrib/btree_gist/btree_bit.c |   12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Initialize padding bytes in btree_gist varbit support.
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Fix harmless access to uninitialized memory.