• Tom Lane's avatar
    Fix potential memory clobber in tsvector_concat(). · 00eb036c
    Tom Lane authored
    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.
    00eb036c
tsvector_op.c 32.4 KB