--- /dev/null
+diff -Naurp net-tools-1.60-ifconfig-new/lib/interface.c net-tools-1.60-ifconfig/lib/interface.c
+--- net-tools-1.60-ifconfig-new/lib/interface.c 2006-03-23 07:02:48.000000000 +0100
++++ net-tools-1.60-ifconfig/lib/interface.c 2006-03-23 09:58:45.000000000 +0100
+@@ -203,6 +203,7 @@ out:
+
+ static char *get_name(char **namep, char *p)
+ {
++ int count = 0;
+ while (isspace(*p))
+ p++;
+ char *name = *namep = p;
+@@ -211,8 +212,13 @@ static char *get_name(char **namep, char
+ if (*p == ':') { /* could be an alias */
+ char *dot = p, *dotname = name;
+ *name++ = *p++;
+- while (isdigit(*p))
++ count++;
++ while (isdigit(*p)){
+ *name++ = *p++;
++ count++;
++ if (count == (IFNAMSIZ-1))
++ break;
++ }
+ if (*p != ':') { /* it wasn't, backup */
+ p = dot;
+ name = dotname;
+@@ -223,6 +229,9 @@ static char *get_name(char **namep, char
+ break;
+ }
+ *name++ = *p++;
++ count++;
++ if (count == (IFNAMSIZ-1))
++ break;
+ }
+ *name++ = '\0';
+ return p;