From: Eduard Bagdasaryan Date: Mon, 28 Oct 2024 09:51:42 +0000 (+0000) Subject: Ftp::Gateway may segfault in level-3 double-complete debugs() (#1923) X-Git-Tag: SQUID_7_0_1~49 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=797039bb0f5e738afc3943299d22ea6cfb3c0a2e;p=thirdparty%2Fsquid.git Ftp::Gateway may segfault in level-3 double-complete debugs() (#1923) Ftp::Gateway::completeForwarding() must check data.conn pointer before dereferencing it. Long-term, we should improve Comm::ConnectionPointer printing to safely report Connection::id (where available). This minimal fix just mimics existing Ftp::Relay::abortOnData() solution. --- diff --git a/src/clients/FtpGateway.cc b/src/clients/FtpGateway.cc index 675c08dfec..63a038925b 100644 --- a/src/clients/FtpGateway.cc +++ b/src/clients/FtpGateway.cc @@ -2639,7 +2639,7 @@ Ftp::Gateway::completeForwarding() { if (fwd == nullptr || flags.completed_forwarding) { debugs(9, 3, "avoid double-complete on FD " << - (ctrl.conn ? ctrl.conn->fd : -1) << ", Data FD " << data.conn->fd << + (ctrl.conn ? ctrl.conn->fd : -1) << ", Data FD " << (data.conn ? data.conn->fd : -1) << ", this " << this << ", fwd " << fwd); return; }