From: Casey Bodley Date: Thu, 6 Oct 2022 17:22:35 +0000 (-0400) Subject: rgw: beast frontend checks for local_endpoint() errors X-Git-Tag: v16.2.15~137^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F54167%2Fhead;p=ceph.git rgw: beast frontend checks for local_endpoint() errors socket.local_endpoint() throws on error. use the error_code overload instead and return on failure Fixes: https://tracker.ceph.com/issues/57784 Signed-off-by: Casey Bodley (cherry picked from commit 60af907c91210f60d0009318b8ca2ccd87941bb9) --- diff --git a/src/rgw/rgw_asio_frontend.cc b/src/rgw/rgw_asio_frontend.cc index be5af0a70d39..cc60ae7afeaf 100644 --- a/src/rgw/rgw_asio_frontend.cc +++ b/src/rgw/rgw_asio_frontend.cc @@ -256,10 +256,14 @@ void handle_connection(boost::asio::io_context& context, ldout(cct, 1) << "failed to connect client: " << ec.message() << dendl; return; } + const auto& local_endpoint = socket.local_endpoint(ec); + if (ec) { + ldout(cct, 1) << "failed to connect client: " << ec.message() << dendl; + return; + } StreamIO real_client{cct, stream, timeout, parser, yield, buffer, - is_ssl, socket.local_endpoint(), - remote_endpoint}; + is_ssl, local_endpoint, remote_endpoint}; auto real_client_io = rgw::io::add_reordering( rgw::io::add_buffering(cct,