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: v18.1.0~696^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=60af907c91210f60d0009318b8ca2ccd87941bb9;p=ceph-ci.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 --- diff --git a/src/rgw/rgw_asio_frontend.cc b/src/rgw/rgw_asio_frontend.cc index 4b4a8175192..6763b28e1b9 100644 --- a/src/rgw/rgw_asio_frontend.cc +++ b/src/rgw/rgw_asio_frontend.cc @@ -247,10 +247,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,