From 04beb42c3a79d0963a92c24483a4c07693f5e6c4 Mon Sep 17 00:00:00 2001 From: Colin Campbell Date: Tue, 30 Mar 2021 12:13:27 +0100 Subject: [PATCH] Bug 28052 Do not check SYSENV values only keys in loop Loop is only interested in key values, because 'keys' is omitted it is checking values as well. This can lead to misleading errors being logged (e.g. key is undefined) Extract keys only to loop array as in the other loops below this Testing: 1 - tail /var/lib/koha/kohadev/sip-output.log 2 - in another tab use the sip cli tester: perl misc/sip_cli_emulator.pl -a localhost -p 6001 -su term1 -sp term1 -l CPL -m checkin --item CHESS1 3 - Note errors: Use of uninitialized value $key in index at /kohadevbox/koha/C4/SIP/Sip/MsgType.pm line 337, line 1. Use of uninitialized value $key in index at /kohadevbox/koha/C4/SIP/Sip/MsgType.pm line 337, line 2. 4 - Apply patch and restart all the things 5 - Repeat 2 6 - Errors mentioned are gone Signed-off-by: Martin Renvoize Signed-off-by: Nick Clemens --- C4/SIP/Sip/MsgType.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/C4/SIP/Sip/MsgType.pm b/C4/SIP/Sip/MsgType.pm index 62d3d5fcfc..1e38f29a68 100644 --- a/C4/SIP/Sip/MsgType.pm +++ b/C4/SIP/Sip/MsgType.pm @@ -333,7 +333,7 @@ sub handle { # Set system preference overrides, first global, then account level # Clear overrides from previous message handling first - foreach my $key ( %ENV ) { + foreach my $key ( keys %ENV ) { delete $ENV{$key} if index($key, 'OVERRIDE_SYSPREF_') > 0; } foreach my $key ( keys %{ $config->{'syspref_overrides'} } ) { -- 2.11.0