From 6afb8e258a5a2a0e7c72c4c25927dde9d1e2ad89 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 24 Aug 2017 07:34:36 -0400 Subject: [PATCH 2/2] Fix redundant argument to sprintf warning. Perl 5.22 now warns about redundant (i.e. extra) arguments to the sprintf function. If your format string only has two place-holders but you pass three place-fillers, you get warned: Redundant argument in sprintf at ./postfix-logwatch line 1382... The issue there was that the format string passed to sprintf was constructed dynamically; sometimes it would contain two place-holders, and sometimes three. Three place-fillers were always passed, so when only two place-holders were used, the warning would be thrown. This was fixed by testing whether or not there are two or three place-holders, and passing the appropriate number of place-fillers. --- postfix-logwatch | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/postfix-logwatch b/postfix-logwatch index 1e58a95..92ed621 100644 --- a/postfix-logwatch +++ b/postfix-logwatch @@ -1378,8 +1378,17 @@ sub print_summary_report (\@) { $$divisor == $Totals{$keyname} ? 100.00 : $Totals{$keyname} * 100 / $$divisor; } else { - push @{$lines[$cur_level]}, - sprintf "$fmt %-23s $extra\n", $total, $desc, commify ($Totals{$keyname}); + my $new_line; + if ($extra eq '') { + $new_line = sprintf("$fmt %-23s \n", $total, $desc); + } + else { + $new_line = sprintf("$fmt %-23s $extra\n", + $total, + $desc, + commify ($Totals{$keyname})); + } + push @{$lines[$cur_level]}, $new_line } } } -- 2.13.0