lib: fix ifindex comparison overflow

Very small (negative!) ifindexes, when subtracted, can overflow.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2020-01-03 19:25:38 -05:00
parent b833cc1ff4
commit e33d7b6a03

View File

@ -137,7 +137,12 @@ static int if_cmp_func(const struct interface *ifp1,
static int if_cmp_index_func(const struct interface *ifp1,
const struct interface *ifp2)
{
return ifp1->ifindex - ifp2->ifindex;
if (ifp1->ifindex == ifp2->ifindex)
return 0;
else if (ifp1->ifindex > ifp2->ifindex)
return 1;
else
return -1;
}
static void ifp_connected_free(void *arg)