]> git.proxmox.com Git - mirror_frr.git/commitdiff
pimd: Fix duplicate code in zlookup
authorDonald Sharp <sharpd@cumulusnetwroks.com>
Fri, 2 Sep 2016 14:43:26 +0000 (10:43 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 22 Dec 2016 01:26:08 +0000 (20:26 -0500)
In the nexthop lookup routine, fix the duplicate code
to not check for too many indexes earlier.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_zlookup.c

index aed2a8a2c9303e1f06e47fe66940a4945c980233..7234790fabff0aad6d45ac5458008e601cb3e36a 100644 (file)
@@ -230,18 +230,17 @@ static int zclient_read_nexthop(struct zclient *zlookup,
     
     nexthop_type = stream_getc(s);
     --length;
-
+    if (num_ifindex >= tab_size) {
+      char addr_str[100];
+      pim_inet4_dump("<addr?>", addr, addr_str, sizeof(addr_str));
+      zlog_warn("%s %s: found too many nexthop ifindexes (%d > %d) for address %s",
+               __FILE__, __PRETTY_FUNCTION__,
+               (num_ifindex + 1), tab_size, addr_str);
+      return num_ifindex;
+    }
     switch (nexthop_type) {
     case NEXTHOP_TYPE_IFINDEX:
     case NEXTHOP_TYPE_IPV4_IFINDEX:
-      if (num_ifindex >= tab_size) {
-       char addr_str[100];
-       pim_inet4_dump("<addr?>", addr, addr_str, sizeof(addr_str));
-       zlog_warn("%s %s: found too many nexthop ifindexes (%d > %d) for address %s",
-                __FILE__, __PRETTY_FUNCTION__,
-                (num_ifindex + 1), tab_size, addr_str);
-       return num_ifindex;
-      }
       if (nexthop_type == NEXTHOP_TYPE_IPV4_IFINDEX) {
        if (length < 4) {
          zlog_err("%s: socket %d short input expecting nexthop IPv4-addr: len=%d",
@@ -260,14 +259,6 @@ static int zclient_read_nexthop(struct zclient *zlookup,
       ++num_ifindex;
       break;
     case NEXTHOP_TYPE_IPV4:
-      if (num_ifindex >= tab_size) {
-       char addr_str[100];
-       pim_inet4_dump("<addr?>", addr, addr_str, sizeof(addr_str));
-       zlog_warn("%s %s: found too many nexthop ifindexes (%d > %d) for address %s",
-                __FILE__, __PRETTY_FUNCTION__,
-                (num_ifindex + 1), tab_size, addr_str);
-       return num_ifindex;
-      }
       nexthop_tab[num_ifindex].nexthop_addr.s_addr = stream_get_ipv4(s);
       length -= 4;
       nexthop_tab[num_ifindex].ifindex             = 0;