From adb371c9cd95ad48cbcedb21a8cb9b0208295dc6 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Wed, 14 Sep 2022 14:52:33 +0900 Subject: [PATCH] Fix incorrect value for "strategy" with deflateParams() in walmethods.c The zlib documentation mentions the values supported for the compression strategy, but this code has been using a hardcoded value of 0 rather than Z_DEFAULT_STRATEGY. This commit adjusts the code to use Z_DEFAULT_STRATEGY. Backpatch down to where this code has been added to ease the backport of any future patch touching this area. Reported-by: Tom Lane Discussion: https://postgr.es/m/1400032.1662217889@sss.pgh.pa.us Backpatch-through: 10 --- src/bin/pg_basebackup/walmethods.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/bin/pg_basebackup/walmethods.c b/src/bin/pg_basebackup/walmethods.c index 7eed63fbedc..5594e7622ac 100644 --- a/src/bin/pg_basebackup/walmethods.c +++ b/src/bin/pg_basebackup/walmethods.c @@ -706,7 +706,7 @@ tar_open_for_write(const char *pathname, const char *temp_suffix, size_t pad_to_ return NULL; /* Turn off compression for header */ - if (deflateParams(tar_data->zp, 0, 0) != Z_OK) + if (deflateParams(tar_data->zp, 0, Z_DEFAULT_STRATEGY) != Z_OK) { tar_set_error("could not change compression parameters"); return NULL; @@ -744,7 +744,8 @@ tar_open_for_write(const char *pathname, const char *temp_suffix, size_t pad_to_ return NULL; /* Re-enable compression for the rest of the file */ - if (deflateParams(tar_data->zp, tar_data->compression, 0) != Z_OK) + if (deflateParams(tar_data->zp, tar_data->compression, + Z_DEFAULT_STRATEGY) != Z_OK) { tar_set_error("could not change compression parameters"); return NULL; @@ -958,7 +959,7 @@ tar_close(Walfile f, WalCloseMethod method) else { /* Turn off compression */ - if (deflateParams(tar_data->zp, 0, 0) != Z_OK) + if (deflateParams(tar_data->zp, 0, Z_DEFAULT_STRATEGY) != Z_OK) { tar_set_error("could not change compression parameters"); return -1; @@ -969,7 +970,8 @@ tar_close(Walfile f, WalCloseMethod method) return -1; /* Turn compression back on */ - if (deflateParams(tar_data->zp, tar_data->compression, 0) != Z_OK) + if (deflateParams(tar_data->zp, tar_data->compression, + Z_DEFAULT_STRATEGY) != Z_OK) { tar_set_error("could not change compression parameters"); return -1;