]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/beast: fix crash observed in SSL stream.async_shutdown() 57376/head
authorMark Kogan <mkogan@redhat.com>
Tue, 30 Apr 2024 11:20:54 +0000 (11:20 +0000)
committerCasey Bodley <cbodley@redhat.com>
Thu, 9 May 2024 15:00:34 +0000 (11:00 -0400)
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 49b69614b0abbcb33147f7e76763c86082a7a3bb..8c64570287daedb511e5b13fb4804995cba7bbe6 100644 (file)
@@ -1043,9 +1043,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 {