diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2020-01-03 19:25:38 -0500 |
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2020-01-03 19:25:38 -0500 |
| commit | e33d7b6a0365b7d1c5708dd4015ae662f64bc104 (patch) | |
| tree | 5343d2701caeba90f4fa589553571377e7d90a91 /lib/if.c | |
| parent | b833cc1ff473e5de43a6c33b520024c943db180c (diff) | |
lib: fix ifindex comparison overflow
Very small (negative!) ifindexes, when subtracted, can overflow.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'lib/if.c')
| -rw-r--r-- | lib/if.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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) |
