[2.4.19] small bug plus fix for /proc/net/snmp (Imcp: field count)

From: Erik Schoenfelder (schoenfr@gaertner.de)
Date: Sun Sep 29 2002 - 14:55:42 EST


Hi,

i received a bug report plus fix from Gonzalo A. Arana Tagle
<garana@uolsinectis.com.ar> about a extra dummy value printed for the
``Icmp:'' values in /proc/net/snmp:

       # awk '/Icmp/ { print NF; }' /proc/net/snmp
       27
       28

the code in snmp_get_info() from net/ipv4/proc.c prints a dummy value
present at the end of struct icmp_mib, which should not be included.

from include/net/snmp.h:

> struct icmp_mib
> {
> unsigned long IcmpInMsgs;
> [...]
> unsigned long IcmpOutAddrMaskReps;
> unsigned long dummy;
> unsigned long __pad[0];
> } ____cacheline_aligned;

instead of printing all values before the __pad field, printing the
values before the dummy field gives the right number of values:

--- linux-2.4.19/net/ipv4/proc.c-dist Wed May 16 19:21:45 2001
+++ linux-2.4.19/net/ipv4/proc.c Sat Sep 28 22:03:05 2002
@@ -128,7 +128,7 @@
         len += sprintf (buffer + len,
                 "\nIcmp: InMsgs InErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps\n"
                   "Icmp:");
- for (i=0; i<offsetof(struct icmp_mib, __pad)/sizeof(unsigned long); i++)
+ for (i=0; i<offsetof(struct icmp_mib, dummy)/sizeof(unsigned long); i++)
                 len += sprintf(buffer+len, " %lu", fold_field((unsigned long*)icmp_statistics, sizeof(struct icmp_mib), i));
 
         len += sprintf (buffer + len,

please fix this. thank's in advance,
                                                        Erik
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Sep 30 2002 - 22:00:42 EST