From: Eric Andersen Date: Thu, 26 Aug 2004 21:45:21 +0000 (-0000) Subject: Felipe Kellermann writes: X-Git-Tag: 1_00~60 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6fea7328ee525724309dcad46f34718fc654e083;p=oweals%2Fbusybox.git Felipe Kellermann writes: Unfortunatelly I've not followed the last two or three weeks commits (new semester started and so now I rarely have time to fix my personal bridge) but tonight I synched my tree and immediately noticed a rather nasty bug! [Using libbb/interface.c:1.24] # grep eth0 /proc/net/dev | xargs eth0:311708397 237346 1670 0 1789 1670 0 0 22580308 120297 0 0 0 102 0 0 # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:20:AF:7C:EA:B7 inet addr:10.0.0.1 Bcast:10.0.0.127 Mask:255.255.255.128 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:5 Base address:0x320 All values `ifconfig' is showing are `zeroed' -- I quickly looked at the last commits I missed and noticed that there were a commit relating to ifconfig, libbb/interface.c:1.23->1.24 (PatchSet 4338). I've reversed the patch and now everything is working again. I compared the get_name's return values from the 1.23 and 1.24 and quickly noticed that the new revision is leaving `p' right on the sep while the rev 1.23 was leaving it right on the starting of the values... 1-line, 1/3-minute patch attached :-) --- diff --git a/libbb/interface.c b/libbb/interface.c index 4632e2930..fe2d0b4b2 100644 --- a/libbb/interface.c +++ b/libbb/interface.c @@ -15,7 +15,7 @@ * that either displays or sets the characteristics of * one or more of the system's networking interfaces. * - * Version: $Id: interface.c,v 1.24 2004/08/12 16:52:00 andersen Exp $ + * Version: $Id: interface.c,v 1.25 2004/08/26 21:45:21 andersen Exp $ * * Author: Fred N. van Kempen, * and others. Copyright 1993 MicroWalt Corporation @@ -1016,7 +1016,7 @@ char *get_name(char *name, char *p) /* first ':' not found - return empty */ name[0]='\0'; } - return p; + return p + 1; } /* If scanf supports size qualifiers for %n conversions, then we can