]> git.puffer.fish Git - mirror/frr.git/commitdiff
Merge branch 'master' into Netlink-Prefix-Len-Check 2700/head
authorStephen Worley <sworley1995@gmail.com>
Thu, 26 Jul 2018 19:34:56 +0000 (15:34 -0400)
committerGitHub <noreply@github.com>
Thu, 26 Jul 2018 19:34:56 +0000 (15:34 -0400)
1  2 
zebra/if_netlink.c
zebra/rt_netlink.c

Simple merge
index 6eeede6f6064c3d22616bdd10fbe641e0b111185,80841b6ac1d6d352904718302c6075b9eb60d38c..5facfa5faa49f7ab757365705c006a91ff288f43
@@@ -393,17 -387,17 +393,23 @@@ static int netlink_route_change_read_un
                memcpy(&p.u.prefix4, dest, 4);
                p.prefixlen = rtm->rtm_dst_len;
  
-               src_p.prefixlen =
-                       0; // Forces debug below to not display anything
+               if (rtm->rtm_src_len != 0) {
+                       char buf[PREFIX_STRLEN];
+                       zlog_warn("unsupported IPv4 sourcedest route (dest %s vrf %u)",
+                                 prefix2str(&p, buf, sizeof(buf)), vrf_id);
+                       return 0;
+               }
  
+               /* Force debug below to not display anything for source */
+               src_p.prefixlen = 0;
        } else if (rtm->rtm_family == AF_INET6) {
                p.family = AF_INET6;
 +              if (rtm->rtm_dst_len > IPV6_MAX_BITLEN) {
 +                      zlog_err(
 +                              "Invalid destination prefix length: %u received from kernel route change",
 +                              rtm->rtm_dst_len);
 +                      return -1;
 +              }
                memcpy(&p.u.prefix6, dest, 16);
                p.prefixlen = rtm->rtm_dst_len;