From: Eduard Bagdasaryan Date: Fri, 16 Sep 2016 18:36:00 +0000 (+1200) Subject: Fix potential ICAP null pointer dreference after rev.14838 X-Git-Tag: SQUID_4_0_15~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2958f2f30c814993e75013bc6fce7fbd720e545;p=thirdparty%2Fsquid.git Fix potential ICAP null pointer dreference after rev.14838 Adjusted Adaptation::Icap::ModXact::finalizeLogInfo(), fixing possible "Null pointer dereference". Detected by Coverity Scan. Issue 1372977 --- diff --git a/src/adaptation/icap/ModXact.cc b/src/adaptation/icap/ModXact.cc index 0bf3c1c77e..89ac65359a 100644 --- a/src/adaptation/icap/ModXact.cc +++ b/src/adaptation/icap/ModXact.cc @@ -1267,7 +1267,7 @@ void Adaptation::Icap::ModXact::finalizeLogInfo() { HttpRequest *adapted_request_ = nullptr; HttpReply *adapted_reply_ = nullptr; - HttpRequest *virgin_request_ = (virgin.cause ? virgin.cause : dynamic_cast(virgin.header)); + HttpRequest *virgin_request_ = const_cast(&virginRequest()); if (!(adapted_request_ = dynamic_cast(adapted.header))) { // if the request was not adapted, use virgin request to simplify // the code further below @@ -1275,7 +1275,7 @@ void Adaptation::Icap::ModXact::finalizeLogInfo() adapted_reply_ = dynamic_cast(adapted.header); } - Adaptation::Icap::History::Pointer h = (virgin_request_ ? virgin_request_->icapHistory() : NULL); + Adaptation::Icap::History::Pointer h = virgin_request_->icapHistory(); Must(h != NULL); // ICAPXaction::maybeLog calls only if there is a log al.icp.opcode = ICP_INVALID; al.url = h->log_uri.termedBuf();