From b74f70fb3358d69af36d4e32d64d4bf310317690 Mon Sep 17 00:00:00 2001 From: dmiller Date: Sun, 29 Dec 2019 05:15:10 +0000 Subject: [PATCH] Avoid integer overflow in multiplication. See #1834 --- nping/NpingOps.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/nping/NpingOps.cc b/nping/NpingOps.cc index 9b0f77861..2d74a21d7 100644 --- a/nping/NpingOps.cc +++ b/nping/NpingOps.cc @@ -3118,7 +3118,15 @@ int NpingOps::echoPayload(bool value){ int NpingOps::getTotalProbes(){ int total_ports=0; this->getTargetPorts(&total_ports); - return this->getPacketCount() * total_ports * this->targets.Targets.size(); + u64 tmp = (u64) this->getPacketCount() * total_ports; + if (tmp > INT_MAX) { + return -1; + } + tmp *= this->targets.Targets.size(); + if (tmp > INT_MAX) { + return -1; + } + return (int) tmp; }