From 90578521e5f332e65e97f7612485d04ace5c0ba5 Mon Sep 17 00:00:00 2001 From: paul Date: Tue, 23 Sep 2003 23:46:01 +0000 Subject: 2003-09-24 sowmini.varadhan@sun.com * lib/if.c: (if_cmp_func) fix infinite loop if ifp1->name == ifp2->name --- lib/if.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/if.c b/lib/if.c index 30de6805..68e6e4a0 100644 --- a/lib/if.c +++ b/lib/if.c @@ -59,7 +59,7 @@ if_cmp_func (struct interface *ifp1, struct interface *ifp2) p1 = ifp1->name; p2 = ifp2->name; - while (1) { + while (*p1 && *p2) { /* look up to any number */ l1 = strcspn(p1, "0123456789"); l2 = strcspn(p2, "0123456789"); @@ -91,6 +91,11 @@ if_cmp_func (struct interface *ifp1, struct interface *ifp2) /* numbers were equal, lets do it again.. (it happens with name like "eth123.456:789") */ } + if (*p1) + return 1; + if (*p2) + return -1; + return 0; } /* Create new interface structure. */ -- cgit v1.2.1