diff options
| author | practicalswift <[email protected]> | 2017-02-28 15:49:49 +0100 |
|---|---|---|
| committer | practicalswift <[email protected]> | 2017-02-28 15:49:49 +0100 |
| commit | 95543d8747cbf7c1945ac36c36031ae40152cf2f (patch) | |
| tree | 94044a7d60dcf54024b0a4547d27076838570a8a /src/net_processing.cpp | |
| parent | Merge #9525: test: Include tx data in EXTRA_DIST (diff) | |
| download | discoin-95543d8747cbf7c1945ac36c36031ae40152cf2f.tar.xz discoin-95543d8747cbf7c1945ac36c36031ae40152cf2f.zip | |
[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).
Diffstat (limited to 'src/net_processing.cpp')
| -rw-r--r-- | src/net_processing.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 72c403a57..521dd02ab 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<uint256, pair<NodeId, list<QueuedBlock>::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; } |