From a2958f2f30c814993e75013bc6fce7fbd720e545 Mon Sep 17 00:00:00 2001 From: Eduard Bagdasaryan Date: Sat, 17 Sep 2016 06:36:00 +1200 Subject: [PATCH] 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 --- src/adaptation/icap/ModXact.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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(); -- 2.47.3