32 lines
1.0 KiB
Diff
32 lines
1.0 KiB
Diff
|
--- tcpdump-3.8.3/print-rsvp.c.old 2004-03-24 05:00:38.000000000 +0100
|
||
|
+++ tcpdump-3.8.3/print-rsvp.c 2005-04-27 17:09:34.000000000 +0200
|
||
|
@@ -872,6 +872,8 @@
|
||
|
|
||
|
case RSVP_OBJ_RRO:
|
||
|
case RSVP_OBJ_ERO:
|
||
|
+ {
|
||
|
+ int step;
|
||
|
switch(rsvp_obj_ctype) {
|
||
|
case RSVP_CTYPE_IPV4:
|
||
|
while(obj_tlen >= 4 ) {
|
||
|
@@ -889,15 +891,16 @@
|
||
|
"none",
|
||
|
*(obj_tptr+7))); /* rfc3209 says that this field is rsvd. */
|
||
|
}
|
||
|
- obj_tlen-=*(obj_tptr+1);
|
||
|
- obj_tptr+=*(obj_tptr+1);
|
||
|
+ step = *(obj_tptr+1) ? *(obj_tptr+1) : obj_tlen;
|
||
|
+ obj_tlen -= step;
|
||
|
+ obj_tptr += step;
|
||
|
}
|
||
|
break;
|
||
|
default:
|
||
|
hexdump=TRUE;
|
||
|
}
|
||
|
break;
|
||
|
-
|
||
|
+ }
|
||
|
case RSVP_OBJ_HELLO:
|
||
|
switch(rsvp_obj_ctype) {
|
||
|
case RSVP_CTYPE_1:
|