]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_fpm_netlink.c
zebra: Do not allow old FPM to access freed memory after shutdown
[mirror_frr.git] / zebra / zebra_fpm_netlink.c
index 5adca14d717171b053f1f92733af0e9205e71b4e..ba34951e76e7700e93ad3b1bc8e6ae1185803ed3 100644 (file)
@@ -252,20 +252,15 @@ static int netlink_route_info_fill(struct netlink_route_info *ri, int cmd,
                                   rib_dest_t *dest, struct route_entry *re)
 {
        struct nexthop *nexthop;
-       struct rib_table_info *table_info =
-               rib_table_info(rib_dest_table(dest));
-       struct zebra_vrf *zvrf = table_info->zvrf;
 
        memset(ri, 0, sizeof(*ri));
 
        ri->prefix = rib_dest_prefix(dest);
        ri->af = rib_dest_af(dest);
 
-       if (zvrf && zvrf->zns)
-               ri->nlmsg_pid = zvrf->zns->netlink_dplane_out.snl.nl_pid;
+       ri->nlmsg_pid = pid;
 
        ri->nlmsg_type = cmd;
-       ri->rtm_table = table_info->table_id;
        ri->rtm_protocol = RTPROT_UNSPEC;
 
        /*
@@ -280,6 +275,8 @@ static int netlink_route_info_fill(struct netlink_route_info *ri, int cmd,
                return 0;
        }
 
+       ri->rtm_table = re->table;
+
        ri->rtm_protocol = netlink_proto_from_route_type(re->type);
        ri->rtm_type = RTN_UNICAST;
        ri->metric = &re->metric;