From 4b529f4697f3cb59e1a225a741f14a1afb6bccd5 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Wed, 14 Sep 2022 14:52:28 +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 be98057d88..e91eb8f42f 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; @@ -746,7 +746,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; @@ -960,7 +961,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; @@ -972,7 +973,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;