• Michael Paquier's avatar
    Fix corner case with PGP decompression in pgcrypto · 9e108984
    Michael Paquier authored
    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
    e94dd6ab.  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
    9e108984
pgp-compression.sql 1.7 KB