Fix a few goofs in new backup compression code.
authorRobert Haas <rhaas@postgresql.org>
Mon, 28 Mar 2022 16:19:05 +0000 (12:19 -0400)
committerRobert Haas <rhaas@postgresql.org>
Mon, 28 Mar 2022 16:19:05 +0000 (12:19 -0400)
commit61762426e6edbe87100dd5a4f107e8c06a11ec02
treed3102a0b64533d4d84062e257765a36ea8189156
parentd22646922d66012705e0e2948cfb5b4a07092a29
Fix a few goofs in new backup compression code.

When we try to set the zstd compression level either on the client
or on the server, check for errors.

For any algorithm, on the client side, don't try to set the compression
level unless the user specified one. This was visibly broken for
zstd, which managed to set -1 rather than 0 in this case, but tidy
up the code for the other methods, too.

On the client side, if we fail to create a ZSTD_CCtx, exit after
reporting the error. Otherwise we'll dereference a null pointer.

Patch by me, reviewed by Dipesh Pandit.

Discussion: http://postgr.es/m/CA+TgmoZK3zLQUCGi1h4XZw4jHiAWtcACc+GsdJR1_Mc19jUjXA@mail.gmail.com
src/backend/replication/basebackup_zstd.c
src/bin/pg_basebackup/bbstreamer_gzip.c
src/bin/pg_basebackup/bbstreamer_lz4.c
src/bin/pg_basebackup/bbstreamer_zstd.c