]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw/beast: fix crash observed in SSL stream.async_shutdown()
authorMark Kogan <mkogan@redhat.com>
Tue, 30 Apr 2024 11:20:54 +0000 (11:20 +0000)
committerMark Kogan <mkogan@redhat.com>
Sun, 12 May 2024 09:29:51 +0000 (12:29 +0300)
Fixes: https://tracker.ceph.com/issues/65664
Signed-off-by: Mark Kogan <mkogan@redhat.com>
(cherry picked from commit bd1a0064b4915e3b27292dc49dbc5e81ef6fc973)

src/rgw/rgw_asio_frontend.cc

index d84264a0a4d056dac1c2f36143ca451f2efb5e4e..98860ca1e17f853cd920223424a399522e376df9 100644 (file)
@@ -1037,9 +1037,11 @@ void AsioFrontend::accept(Listener& l, boost::system::error_code ec)
                           conn->buffer, true, pause_mutex, scheduler.get(),
                           uri_prefix, ec, yield);
 
-        // ssl shutdown (ignoring errors)
-        stream.async_shutdown(yield[ec]);
-        
+        if (!ec || ec == http::error::end_of_stream) {
+          // ssl shutdown (ignoring errors)
+          stream.async_shutdown(yield[ec]);
+        }
+
         conn->socket.shutdown(tcp::socket::shutdown_both, ec);
       }, make_stack_allocator());
   } else {