Bug 40270: Fix uninitialized value warnings in SIP logging
The SIP server generates warnings when logging account information
for failed logins:
Use of uninitialized value $args[0] in sprintf at /kohadevbox/koha/C4/SIP/Sip.pm line 314
Use of uninitialized value $args[1] in sprintf at /kohadevbox/koha/C4/SIP/Sip.pm line 314
This occurs when $self->{account}->{id} or $self->{account}->{institution}
are undefined during failed authentication attempts.
This patch fixes the issue by:
1. Adding a safer sprintf implementation in siplog that handles undefined values
2. Providing default values for undefined account information in logging calls
To test:
1. Start SIP server
2. Attempt to connect with invalid credentials using sip_cli_emulator.pl:
./misc/sip_cli_emulator.pl -a 127.0.0.1 -p 6001 -su invaliduser -sp wrongpass -l kohalibrary2 --patron koha -m patron_information
3. Check /var/log/koha/kohadev/sip-output.log
=> FAIL: 'Use of uninitialized value...' warns
4. Apply this patch
5. Repeat 2
=> SUCCESS: No "Use of uninitialized value" warnings appear
=> SUCCESS: Logging shows 'undef/undef' for failed logins instead of empty strings
6. Try a valid login
=> SUCCESS: Still works correctly for valid logins
7. Sign off :-D
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 9cad25967d)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
(cherry picked from commit 4e1cd02932)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
This commit is contained in:
parent
9d501229e9
commit
3de53001d4
|
|
@ -313,8 +313,9 @@ sub raw_transport {
|
|||
Koha::Logger->put_mdc( "peeraddr", $self->{server}->{peeraddr} );
|
||||
|
||||
siplog("LOG_DEBUG", "raw_transport: uname/inst: '%s/%s'",
|
||||
$self->{account}->{id},
|
||||
$self->{account}->{institution});
|
||||
$self->{account}->{id} // 'undef',
|
||||
$self->{account}->{institution} // 'undef'
|
||||
);
|
||||
if (! $self->{account}->{id}) {
|
||||
siplog("LOG_ERR","Login failed shutting down");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -231,7 +231,15 @@ sub siplog {
|
|||
: $level eq 'LOG_WARNING' ? 'warn'
|
||||
: 'error';
|
||||
|
||||
my $message = @args ? sprintf($mask, @args) : $mask;
|
||||
my $message;
|
||||
if (@args) {
|
||||
|
||||
# Replace undefined values with 'undef' to prevent sprintf warnings
|
||||
my @safe_args = map { defined($_) ? $_ : 'undef' } @args;
|
||||
$message = sprintf( $mask, @safe_args );
|
||||
} else {
|
||||
$message = $mask;
|
||||
}
|
||||
|
||||
$message = remove_password_from_message($message);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue