summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Harris <gharris@sonic.net>2020-05-26 22:14:24 -0700
committerGuy Harris <gharris@sonic.net>2020-05-26 22:14:24 -0700
commita225ce337dfbbd8f52043827b792d869e8a306e7 (patch)
treee6990a7e98635135b0ccdc27b68696be63cbac0a
parent3cb1082cb5ca0701728c5be20f691f59804f8c29 (diff)
downloadtcpdump-a225ce337dfbbd8f52043827b792d869e8a306e7.tar.gz
isis: add some additional length checks.
Make sure the length in question is big enough before fetching data and subtracting from it.
-rw-r--r--print-isoclns.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/print-isoclns.c b/print-isoclns.c
index b5943cc7..3859c8ff 100644
--- a/print-isoclns.c
+++ b/print-isoclns.c
@@ -1921,10 +1921,14 @@ isis_print_ip_reach_subtlv(netdissect_options *ndo,
algo = GET_U_1(tptr+1);
if (flags & ISIS_PREFIX_SID_FLAG_V) {
+ if (subl < 5)
+ goto trunc;
sid = GET_BE_U_3(tptr+2);
tptr+=5;
subl-=5;
} else {
+ if (subl < 6)
+ goto trunc;
sid = GET_BE_U_4(tptr+2);
tptr+=6;
subl-=6;