summaryrefslogtreecommitdiff
path: root/pimd/mtracebis.c
diff options
context:
space:
mode:
authorpaco <paco@voltanet.io>2018-06-25 15:25:26 +0200
committerpaco <paco@voltanet.io>2018-06-25 17:37:48 +0200
commitd94023d85c1682ae14def9d50f2474e8e6290e44 (patch)
tree695e8006d038e5640fcc44bd1e4facf7ed0f4efc /pimd/mtracebis.c
parent3a743cb7ec5fd1e91e0803487c606cf63e54c22b (diff)
pimd: untrusted argument (2) (Coverity 1465491)
Additional fix over 18e994a0437cfba9f4c09bd62293e13e49ea774b (PR #2457) Previous correction was not enough for fixing the Coverity warning. Now we ensure we don't overflow the buffer. Signed-off-by: F. Aragon <paco@voltanet.io>
Diffstat (limited to 'pimd/mtracebis.c')
-rw-r--r--pimd/mtracebis.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/pimd/mtracebis.c b/pimd/mtracebis.c
index c63a6eeca9..a0e8fd1270 100644
--- a/pimd/mtracebis.c
+++ b/pimd/mtracebis.c
@@ -303,6 +303,9 @@ static int recv_response(int fd, int *hops, struct igmp_mtrace *mtracer)
if (mtrace_len < (int)MTRACE_HDR_SIZE)
return -1;
+ if (mtrace_len > (int)MTRACE_BUF_LEN)
+ return -1;
+
sum = mtrace->checksum;
mtrace->checksum = 0;
if (sum != in_cksum(mtrace, mtrace_len)) {