From: paul Date: Tue, 23 Sep 2003 23:46:01 +0000 (+0000) Subject: 2003-09-24 sowmini.varadhan@sun.com X-Git-Tag: frr-2.0-rc1~3907 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=90578521e5f332e65e97f7612485d04ace5c0ba5;p=matthieu%2Ffrr.git 2003-09-24 sowmini.varadhan@sun.com * lib/if.c: (if_cmp_func) fix infinite loop if ifp1->name == ifp2->name --- diff --git a/lib/if.c b/lib/if.c index 30de6805ce..68e6e4a086 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. */