Skip to content

Commit 5b71d51

Browse files
committed
TLSServer: Fix crash on logging errors
In #3330 we added host name information to the error messages but it doesn't care the case when it fails getpeername(2). Signed-off-by: Takuro Ashie <ashie@clear-code.com>
1 parent b28f7d7 commit 5b71d51

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/fluent/plugin_helper/server.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,13 +709,15 @@ def try_tls_accept
709709
return true
710710
end
711711
rescue Errno::EPIPE, Errno::ECONNRESET, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH => e
712+
peeraddr = (@_handler_socket.peeraddr rescue PEERADDR_FAILED)
712713
@log.trace "unexpected error before accepting TLS connection",
713-
host: @_handler_socket.peeraddr[3], port: @_handler_socket.peeraddr[1], error: e
714+
addr: peeraddr[3], host: peeraddr[2], port: peeraddr[1], error: e
714715
close rescue nil
715716
rescue OpenSSL::SSL::SSLError => e
717+
peeraddr = (@_handler_socket.peeraddr rescue PEERADDR_FAILED)
716718
# Use same log level as on_readable
717719
@log.warn "unexpected error before accepting TLS connection by OpenSSL",
718-
host: @_handler_socket.peeraddr[3], port: @_handler_socket.peeraddr[1], error: e
720+
addr: peeraddr[3], host: peeraddr[2], port: peeraddr[1], error: e
719721
close rescue nil
720722
end
721723

0 commit comments

Comments
 (0)