From 95543d8747cbf7c1945ac36c36031ae40152cf2f Mon Sep 17 00:00:00 2001 From: practicalswift Date: Tue, 28 Feb 2017 15:49:49 +0100 Subject: [PATCH] [net] Avoid possibility of NULL pointer dereference in MarkBlockAsInFlight(...) In the case that the branch ... if (itInFlight != mapBlocksInFlight.end() && itInFlight->second.first == nodeid) { ... is taken, there was prior to this commit an implicit assumption that MarkBlockAsInFlight(...) was being called with its fifth and optional argument (pit) being present (and non-NULL). --- src/net_processing.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 72c403a57e..521dd02ab8 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -338,7 +338,9 @@ bool MarkBlockAsInFlight(NodeId nodeid, const uint256& hash, const Consensus::Pa // Short-circuit most stuff in case its from the same node map::iterator> >::iterator itInFlight = mapBlocksInFlight.find(hash); if (itInFlight != mapBlocksInFlight.end() && itInFlight->second.first == nodeid) { - *pit = &itInFlight->second.second; + if (pit) { + *pit = &itInFlight->second.second; + } return false; }