summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-06-09 15:42:58 +0000
committersam <sam@FreeBSD.org>2005-06-09 15:42:58 +0000
commit22f120bd5ede6c64cd5ec50d807a7ad7674ca484 (patch)
treec1626fd97a298b125983424293631eccaec5c7e7 /contrib/tcpdump
parente8d7a14e2345638ddb092d21c467d693281e3036 (diff)
parenta6836add6eafd2d06f4eeb7200e8217ba3399c1b (diff)
downloadFreeBSD-src-22f120bd5ede6c64cd5ec50d807a7ad7674ca484.zip
FreeBSD-src-22f120bd5ede6c64cd5ec50d807a7ad7674ca484.tar.gz
This commit was generated by cvs2svn to compensate for changes in r147173,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/tcpdump')
-rw-r--r--contrib/tcpdump/print-bgp.c5
-rw-r--r--contrib/tcpdump/print-rsvp.c13
2 files changed, 13 insertions, 5 deletions
diff --git a/contrib/tcpdump/print-bgp.c b/contrib/tcpdump/print-bgp.c
index 135ffe3..d1b0271 100644
--- a/contrib/tcpdump/print-bgp.c
+++ b/contrib/tcpdump/print-bgp.c
@@ -1798,9 +1798,10 @@ bgp_update_print(const u_char *dat, int length)
while (dat + length > p) {
char buf[MAXHOSTNAMELEN + 100];
i = decode_prefix4(p, buf, sizeof(buf));
- if (i == -1)
+ if (i == -1) {
printf("\n\t (illegal prefix length)");
- else if (i == -2)
+ break;
+ } else if (i == -2)
goto trunc;
else {
printf("\n\t %s", buf);
diff --git a/contrib/tcpdump/print-rsvp.c b/contrib/tcpdump/print-rsvp.c
index 959a620..58da545 100644
--- a/contrib/tcpdump/print-rsvp.c
+++ b/contrib/tcpdump/print-rsvp.c
@@ -558,7 +558,7 @@ rsvp_obj_print (const u_char *tptr, const char *ident, u_int tlen) {
rsvp_obj_ctype=rsvp_obj_header->ctype;
if(rsvp_obj_len % 4 || rsvp_obj_len < sizeof(struct rsvp_object_header)) {
- printf("ERROR: object header too short %u < %lu", rsvp_obj_len,
+ printf("%sERROR: object header too short %u < %lu", ident, rsvp_obj_len,
(unsigned long)sizeof(const struct rsvp_object_header));
return -1;
}
@@ -883,11 +883,18 @@ rsvp_obj_print (const u_char *tptr, const char *ident, u_int tlen) {
switch(rsvp_obj_ctype) {
case RSVP_CTYPE_IPV4:
while(obj_tlen >= 4 ) {
- printf("%s Subobject Type: %s",
+ printf("%s Subobject Type: %s, length %u",
ident,
tok2str(rsvp_obj_xro_values,
"Unknown %u",
- RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)));
+ RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)),
+ *(obj_tptr+1));
+
+ if (*(obj_tptr+1) == 0) { /* prevent infinite loops */
+ printf("%s ERROR: zero length ERO subtype",ident);
+ break;
+ }
+
switch(RSVP_OBJ_XRO_MASK_SUBOBJ(*obj_tptr)) {
case RSVP_OBJ_XRO_IPV4:
printf(", %s, %s/%u, Flags: [%s]",
OpenPOWER on IntegriCloud