From 51891d5a95605c4e98324731b386345d89c5a71e Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Fri, 28 Jan 2022 11:40:53 -0500 Subject: [PATCH] pg_basebackup: Cleaner handling when compression is multiply specified. Tushar Ahuja discovered that if you use both --compress and --gzip, or --compress multiple times, the last instance of one of these options doesn't in all cases overwrite the compression level set by an earlier option. That's not a serious bug, but it also has nothing to recommend it. Repair. Discussion: http://postgr.es/m/CA+TgmoZfP=rsZB_9vDGfhuNgSu_M_09UWu8SjvsP65y_1pQFCg@mail.gmail.com --- src/bin/pg_basebackup/pg_basebackup.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c index 1f81bbf4e2..c40925c1f0 100644 --- a/src/bin/pg_basebackup/pg_basebackup.c +++ b/src/bin/pg_basebackup/pg_basebackup.c @@ -966,6 +966,12 @@ parse_compress_options(char *src, WalCompressionMethod *methodres, int firstlen; char *firstpart; + /* + * clear 'levelres' so that if there are multiple compression options, + * the last one fully overrides the earlier ones + */ + *levelres = 0; + /* check if the option is split in two */ sep = strchr(src, ':');