NetBSD Problem Report #45841

From www@NetBSD.org  Mon Jan 16 08:25:39 2012
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 2A7A463B931
	for <gnats-bugs@gnats.NetBSD.org>; Mon, 16 Jan 2012 08:25:39 +0000 (UTC)
Message-Id: <20120116082538.03E5263B84C@www.NetBSD.org>
Date: Mon, 16 Jan 2012 08:25:37 +0000 (UTC)
From: henning.petersen@t-online.de
Reply-To: henning.petersen@t-online.de
To: gnats-bugs@NetBSD.org
Subject: Incorrect use of sizeof in tcpdump.
X-Send-Pr-Version: www-1.0

>Number:         45841
>Category:       bin
>Synopsis:       Incorrect use of sizeof in tcpdump.
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    bin-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jan 16 08:30:00 +0000 2012
>Closed-Date:    Sun Jan 22 15:17:40 +0000 2012
>Last-Modified:  Sun Jan 22 15:17:40 +0000 2012
>Originator:     Henning Petersen
>Release:        NetBSD-current
>Organization:
>Environment:
>Description:
Incorrect use of sizeof in print-eigrip, print-ldp.c, print-lmp.c, print-lspping.c, print-rsvp.c and print-slow.c .
Found by cppcheck.
>How-To-Repeat:

>Fix:
diff -u -p -r1.2 print-eigrp.c
--- external/bsd/tcpdump/dist/print-eigrp.c	5 Dec 2010 05:11:30 -0000	1.2
+++ external/bsd/tcpdump/dist/print-eigrp.c	28 Dec 2011 07:36:44 -0000
@@ -285,7 +285,7 @@ eigrp_print(register const u_char *pptr,

         if (eigrp_tlv_len < sizeof(struct eigrp_tlv_header) ||
             eigrp_tlv_len > tlen) {
-            print_unknown_data(tptr+sizeof(sizeof(struct eigrp_tlv_header)),"\n\t    ",tlen);
+            print_unknown_data(tptr+sizeof(struct eigrp_tlv_header),"\n\t    ",tlen);
             return;
         }

@@ -473,7 +473,7 @@ eigrp_print(register const u_char *pptr,
         }
         /* do we want to see an additionally hexdump ? */
         if (vflag > 1)
-            print_unknown_data(tptr+sizeof(sizeof(struct eigrp_tlv_header)),"\n\t    ",
+            print_unknown_data(tptr+sizeof(struct eigrp_tlv_header),"\n\t    ",
                                eigrp_tlv_len-sizeof(struct eigrp_tlv_header));

         tptr+=eigrp_tlv_len;
===================================================================
diff -u -p -r1.2 print-ldp.c
--- external/bsd/tcpdump/dist/print-ldp.c	5 Dec 2010 05:11:30 -0000	1.2
+++ external/bsd/tcpdump/dist/print-ldp.c	28 Dec 2011 07:36:44 -0000
@@ -614,7 +614,7 @@ ldp_msg_print(register const u_char *ppt
         }
         /* do we want to see an additionally hexdump ? */
         if (vflag > 1 || hexdump==TRUE)
-            print_unknown_data(tptr+sizeof(sizeof(struct ldp_msg_header)),"\n\t  ",
+            print_unknown_data(tptr+sizeof(struct ldp_msg_header),"\n\t  ",
                                msg_len);

         tptr += msg_len+4;
===================================================================
diff -u -p -r1.2 print-lmp.c
--- external/bsd/tcpdump/dist/print-lmp.c	5 Dec 2010 05:11:30 -0000	1.2
+++ external/bsd/tcpdump/dist/print-lmp.c	28 Dec 2011 07:36:45 -0000
@@ -876,7 +876,7 @@ lmp_print(register const u_char *pptr, r
         }
         /* do we want to see an additionally hexdump ? */
         if (vflag > 1 || hexdump==TRUE)
-            print_unknown_data(tptr+sizeof(sizeof(struct lmp_object_header)),"\n\t    ",
+            print_unknown_data(tptr+sizeof(struct lmp_object_header),"\n\t    ",
                                lmp_obj_len-sizeof(struct lmp_object_header));

         tptr+=lmp_obj_len;
===================================================================
diff -u -p -r1.2 print-lspping.c
--- external/bsd/tcpdump/dist/print-lspping.c	5 Dec 2010 05:11:30 -0000	1.2
+++ external/bsd/tcpdump/dist/print-lspping.c	28 Dec 2011 07:36:46 -0000
@@ -883,7 +883,7 @@ lspping_print(register const u_char *ppt
         }
         /* do we want to see an additionally tlv hexdump ? */
         if (vflag > 1 || tlv_hexdump==TRUE)
-            print_unknown_data(tptr+sizeof(sizeof(struct lspping_tlv_header)),"\n\t    ",
+            print_unknown_data(tptr+sizeof(struct lspping_tlv_header),"\n\t    ",
                                lspping_tlv_len);


===================================================================
diff -u -p -r1.2 print-rsvp.c
--- external/bsd/tcpdump/dist/print-rsvp.c	5 Dec 2010 05:11:30 -0000	1.2
+++ external/bsd/tcpdump/dist/print-rsvp.c	28 Dec 2011 07:36:48 -0000
@@ -1795,7 +1795,7 @@ _U_
         }
         /* do we also want to see a hex dump ? */
         if (vflag > 1 || hexdump==TRUE)
-            print_unknown_data(tptr+sizeof(sizeof(struct rsvp_object_header)),"\n\t    ", /* FIXME indentation */
+            print_unknown_data(tptr+sizeof(struct rsvp_object_header),"\n\t    ", /* FIXME indentation */
                                rsvp_obj_len-sizeof(struct rsvp_object_header));

         tptr+=rsvp_obj_len;
===================================================================
diff -u -p -r1.2 print-slow.c
--- external/bsd/tcpdump/dist/print-slow.c	5 Dec 2010 05:11:30 -0000	1.2
+++ external/bsd/tcpdump/dist/print-slow.c	28 Dec 2011 07:36:48 -0000
@@ -373,7 +373,7 @@ void slow_marker_lacp_print(register con
             tlv_header->type != LACP_TLV_TERMINATOR &&
             tlv_header->type != MARKER_TLV_TERMINATOR) {
             printf("\n\t-----trailing data-----");
-            print_unknown_data(tptr+sizeof(sizeof(struct tlv_header_t)),"\n\t  ",tlen);
+            print_unknown_data(tptr+sizeof(struct tlv_header_t),"\n\t  ",tlen);
             return;
         }

@@ -446,7 +446,7 @@ void slow_marker_lacp_print(register con
         }
         /* do we want to see an additional hexdump ? */
         if (vflag > 1) {
-            print_unknown_data(tptr+sizeof(sizeof(struct tlv_header_t)),"\n\t  ",
+            print_unknown_data(tptr+sizeof(struct tlv_header_t),"\n\t  ",
                                tlv_len-sizeof(struct tlv_header_t));
         }


>Release-Note:

>Audit-Trail:
From: "Christos Zoulas" <christos@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/45841 CVS commit: src/external/bsd/tcpdump/dist
Date: Mon, 16 Jan 2012 12:34:19 -0500

 Module Name:	src
 Committed By:	christos
 Date:		Mon Jan 16 17:34:19 UTC 2012

 Modified Files:
 	src/external/bsd/tcpdump/dist: print-eigrp.c print-ldp.c print-lmp.c
 	    print-lspping.c print-rsvp.c print-slow.c

 Log Message:
 PR/45841: Henning Petersen: One sizeof is enough.


 To generate a diff of this commit:
 cvs rdiff -u -r1.2 -r1.3 src/external/bsd/tcpdump/dist/print-eigrp.c \
     src/external/bsd/tcpdump/dist/print-ldp.c \
     src/external/bsd/tcpdump/dist/print-lmp.c \
     src/external/bsd/tcpdump/dist/print-lspping.c \
     src/external/bsd/tcpdump/dist/print-rsvp.c \
     src/external/bsd/tcpdump/dist/print-slow.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Sun, 22 Jan 2012 15:17:40 +0000
State-Changed-Why:
Christos fixed it


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.