pgsql: Fix corner case with PGP decompression in pgcrypto
От | Michael Paquier |
---|---|
Тема | pgsql: Fix corner case with PGP decompression in pgcrypto |
Дата | |
Msg-id | E1jy7iD-0007JM-T7@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix corner case with PGP decompression in pgcrypto A compressed stream may end with an empty packet, and PGP decompression finished before reading this empty packet in the remaining stream. This caused a failure in pgcrypto, handling this case as corrupted data. This commit makes sure to consume such extra data, avoiding a failure when decompression the entire stream. This corner case was reproducible with a data length of 16kB, and existed since its introduction in e94dd6a. A cheap regression test is added to cover this case. Thanks to Jeff Janes for the extra investigation. Reported-by: Frank Gagnepain Author: Kyotaro Horiguchi, Michael Paquier Discussion: https://postgr.es/m/16476-692ef7b84e5fb893@postgresql.org Backpatch-through: 9.5 Branch ------ REL_11_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/eceb415c6ff0eb2494f90397433a966a182f3908 Modified Files -------------- contrib/pgcrypto/expected/pgp-compression.out | 30 +++++++++++++++++++++++++++ contrib/pgcrypto/pgp-compress.c | 22 ++++++++++---------- contrib/pgcrypto/sql/pgp-compression.sql | 21 +++++++++++++++++++ 3 files changed, 62 insertions(+), 11 deletions(-)
В списке pgsql-committers по дате отправления: