pgsql: Fix potential memory clobber in tsvector_concat(). - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix potential memory clobber in tsvector_concat().
Date
Msg-id E1Qx3ON-0006JB-LK@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix potential memory clobber in tsvector_concat().

tsvector_concat() allocated its result workspace using the "conservative"
estimate of the sum of the two input tsvectors' sizes.  Unfortunately that
wasn't so conservative as all that, because it supposed that the number of
pad bytes required could not grow.  Which it can, as per test case from
Jesper Krogh, if there's a mix of lexemes with positions and lexemes
without them in the input data.  The fix is to assume that we might add
a not-previously-present pad byte for each and every lexeme in the two
inputs; which really is conservative, but it doesn't seem worthwhile to
try to be more precise.

This is an aboriginal bug in tsvector_concat, so back-patch to all
versions containing it.

Branch
------
REL9_1_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/93809ad5eb8f0dbd704b2f713f707d8cf684fd57

Modified Files
--------------
src/backend/utils/adt/tsvector_op.c |   36 +++++++++++++++++++++++++++++-----
1 files changed, 30 insertions(+), 6 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Improve comments describing tsvector data structure.
Next
From: Bruce Momjian
Date:
Subject: pgsql: do include files first