bin/112126: [patch] netstat(1) segfaults on unusual ICMP
statistics
Christoph Weber-Fahr
wefa2 at gmx.de
Fri Apr 27 01:50:09 UTC 2007
The following reply was made to PR bin/112126; it has been noted by GNATS.
From: Christoph Weber-Fahr <wefa2 at gmx.de>
To: Maxim Konovalov <maxim at macomnet.ru>
Cc: bug-followup at FreeBSD.org
Subject: Re: bin/112126: [patch] netstat(1) segfaults on unusual ICMP statistics
Date: Fri, 27 Apr 2007 03:50:05 +0200
Hello,
Maxim Konovalov wrote:
> On Thu, 26 Apr 2007, 00:00+0200, Chris wrote:
>>> +static const char *icmpnames[ICMP_MAXTYPE + 1] = {
>> with this he actually avoids the crash in case of an
>> out of sync kernel interface (assumed the array gets
>> automatically zeroed at allocation time - does it ? )
>>
>> But this still produces a very funny netstat output
>> with just numbers and no labels. I continue to prefer
>> my suggestion.
>
> I see:
>
> Output histogram:
> echo reply: 41
> destination unreachable: 495
> [...]
> Input histogram:
> echo reply: 12
> destination unreachable: 1
> echo: 41
> #20: 7
> icmp traceroute: 16
> mobile registration req: 25
> #37: 31
Actually, you don't see that. You'd see:
Input histogram:
echo reply: 12
destination unreachable: 1
echo: 41
#20: 7
icmp traceroute: 16
mobile registration req: 25
#37: 31
8
15
Note the last two untagged values. They
are created when the kernel, which in
the meantime has a ICM_MAXTYPE at, say, 49,
has logged 8 packets of type 44, and 15 of type 47.
> What is yours?
My variant would produce:
Input histogram:
echo reply: 12
destination unreachable: 1
echo: 41
#20: 7
icmp traceroute: 16
mobile registration req: 25
#37: 31
unknown ICMP #44: 8
unknown ICMP #47: 15
This is preferable because it both gives more
information (you still get the type number) and
doesn't break the tag: value format that many
monitoring setups use for simple parsing.
Regards
Christoph Weber-Fahr
More information about the freebsd-bugs
mailing list