]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Advance input pointer when LZ4 compressing data
authorTomas Vondra <tomas.vondra@postgresql.org>
Wed, 17 May 2023 14:49:31 +0000 (16:49 +0200)
committerTomas Vondra <tomas.vondra@postgresql.org>
Wed, 17 May 2023 14:49:34 +0000 (16:49 +0200)
commit1a05c1d252993b0a59c58a6daf91a2df9333044f
tree3cc04d6bc11df32c5ed68e3a23bb42e46bfb9e92
parent3c18d90f8907e53c3021fca13ad046133c480e4d
Advance input pointer when LZ4 compressing data

LZ4File_write() did not advance the input pointer on subsequent invocations of
LZ4F_compressUpdate(). As a result the generated compressed output would be a
compressed version of the same input chunk.

Tests failed to catch this error because the data would comfortably fit
within the default buffer size, as a single chunk. Tests have been added
to provide adequate coverage of multi-chunk compression.

WriteDataToArchiveLZ4() which is also using LZ4F_compressUpdate() did
not suffer from this omission.

Author: Georgios Kokolatos <gkokolatos@pm.me>
Reported-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/ZFhCyn4Gm2eu60rB%40paquier.xyz
src/bin/pg_dump/compress_io.h
src/bin/pg_dump/compress_lz4.c
src/bin/pg_dump/t/002_pg_dump.pl