diff --git a/C4/SIP/SIPServer.pm b/C4/SIP/SIPServer.pm index 96c1809fbe..0038271ca6 100644 --- a/C4/SIP/SIPServer.pm +++ b/C4/SIP/SIPServer.pm @@ -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; diff --git a/C4/SIP/Sip.pm b/C4/SIP/Sip.pm index fa65951bd9..8d27f64af1 100644 --- a/C4/SIP/Sip.pm +++ b/C4/SIP/Sip.pm @@ -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);