From 75b745e81de22061c19a68f6d8ff6840d2612d40 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 17 Sep 2022 13:09:15 +0000 Subject: [PATCH] HttpUtils.pm: enclose IO::Socket::SSL->start_SSL into eval (Forum #129212) git-svn-id: https://svn.fhem.de/fhem/trunk@26409 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/HttpUtils.pm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/HttpUtils.pm b/fhem/FHEM/HttpUtils.pm index f242b3ac4..33508f51d 100644 --- a/fhem/FHEM/HttpUtils.pm +++ b/fhem/FHEM/HttpUtils.pm @@ -510,12 +510,19 @@ HttpUtils_Connect2NonblockingSSL($$) $hash->{conn}->blocking(0); $par->{SSL_startHandshake} = 0; - if(!IO::Socket::SSL->start_SSL($hash->{conn}, $par) || - $hash->{conn}->connect_SSL() || - $! != EWOULDBLOCK) { + eval { + if(!IO::Socket::SSL->start_SSL($hash->{conn}, $par) || + $hash->{conn}->connect_SSL() || + $! != EWOULDBLOCK) { + HttpUtils_Close($hash); + return $hash->{callback}($hash, + "$! ".($SSL_ERROR ? $SSL_ERROR : IO::Socket::SSL::errstr())); + } + }; + if($@) { + Log3 $hash, $hash->{loglevel}, $@; HttpUtils_Close($hash); - return $hash->{callback}($hash, - "$! ".($SSL_ERROR ? $SSL_ERROR : IO::Socket::SSL::errstr())); + return $hash->{callback}($hash, $@); } $hash->{FD} = $hash->{conn}->fileno();