Acked-by: Donald Sharp <sha...@cumulusnetworks.com> On Tue, Jun 14, 2016 at 2:07 PM, Christian Franke < ch...@opensourcerouting.org> wrote:
> From: Christian Franke <nob...@nowhere.ws> > > sockunion_str2su allocates a struct sockunion that used to be leaked > in the show commands. Use str2sockunion and keep the information > on the stack instead. > > Signed-off-by: Christian Franke <ch...@opensourcerouting.org> > --- > bgpd/bgp_encap.c | 38 +++++++++++++++++--------------------- > bgpd/bgp_mplsvpn.c | 18 ++++++++---------- > bgpd/bgp_route.c | 10 ++++++---- > 3 files changed, 31 insertions(+), 35 deletions(-) > > diff --git a/bgpd/bgp_encap.c b/bgpd/bgp_encap.c > index 1a09ba6..73ab8958 100644 > --- a/bgpd/bgp_encap.c > +++ b/bgpd/bgp_encap.c > @@ -649,24 +649,23 @@ DEFUN (show_bgp_ipv4_encap_neighbor_routes, > "Neighbor to display information about\n" > "Display routes learned from neighbor\n") > { > - union sockunion *su; > + union sockunion su; > struct peer *peer; > - > - su = sockunion_str2su (argv[0]); > - if (su == NULL) > + > + if (str2sockunion(argv[0], &su)) > { > vty_out (vty, "Malformed address: %s%s", argv[0], VTY_NEWLINE); > return CMD_WARNING; > } > > - peer = peer_lookup (NULL, su); > + peer = peer_lookup (NULL, &su); > if (! peer || ! peer->afc[AFI_IP][SAFI_ENCAP]) > { > vty_out (vty, "%% No such neighbor or address family%s", > VTY_NEWLINE); > return CMD_WARNING; > } > > - return bgp_show_encap (vty, AFI_IP, NULL, bgp_show_type_neighbor, su, > 0); > + return bgp_show_encap (vty, AFI_IP, NULL, bgp_show_type_neighbor, &su, > 0); > } > > DEFUN (show_bgp_ipv6_encap_neighbor_routes, > @@ -680,24 +679,23 @@ DEFUN (show_bgp_ipv6_encap_neighbor_routes, > "Neighbor to display information about\n" > "Display routes learned from neighbor\n") > { > - union sockunion *su; > + union sockunion su; > struct peer *peer; > > - su = sockunion_str2su (argv[0]); > - if (su == NULL) > + if (str2sockunion(argv[0], &su)) > { > vty_out (vty, "Malformed address: %s%s", argv[0], VTY_NEWLINE); > return CMD_WARNING; > } > > - peer = peer_lookup (NULL, su); > + peer = peer_lookup (NULL, &su); > if (! peer || ! peer->afc[AFI_IP6][SAFI_ENCAP]) > { > vty_out (vty, "%% No such neighbor or address family%s", > VTY_NEWLINE); > return CMD_WARNING; > } > > - return bgp_show_encap (vty, AFI_IP6, NULL, bgp_show_type_neighbor, su, > 0); > + return bgp_show_encap (vty, AFI_IP6, NULL, bgp_show_type_neighbor, &su, > 0); > } > > DEFUN (show_bgp_ipv4_encap_rd_neighbor_routes, > @@ -715,7 +713,7 @@ DEFUN (show_bgp_ipv4_encap_rd_neighbor_routes, > "Display routes learned from neighbor\n") > { > int ret; > - union sockunion *su; > + union sockunion su; > struct peer *peer; > struct prefix_rd prd; > > @@ -726,21 +724,20 @@ DEFUN (show_bgp_ipv4_encap_rd_neighbor_routes, > return CMD_WARNING; > } > > - su = sockunion_str2su (argv[1]); > - if (su == NULL) > + if (str2sockunion(argv[1], &su)) > { > vty_out (vty, "Malformed address: %s%s", argv[1], VTY_NEWLINE); > return CMD_WARNING; > } > > - peer = peer_lookup (NULL, su); > + peer = peer_lookup (NULL, &su); > if (! peer || ! peer->afc[AFI_IP][SAFI_ENCAP]) > { > vty_out (vty, "%% No such neighbor or address family%s", > VTY_NEWLINE); > return CMD_WARNING; > } > > - return bgp_show_encap (vty, AFI_IP, &prd, bgp_show_type_neighbor, su, > 0); > + return bgp_show_encap (vty, AFI_IP, &prd, bgp_show_type_neighbor, &su, > 0); > } > > DEFUN (show_bgp_ipv6_encap_rd_neighbor_routes, > @@ -758,7 +755,7 @@ DEFUN (show_bgp_ipv6_encap_rd_neighbor_routes, > "Display routes learned from neighbor\n") > { > int ret; > - union sockunion *su; > + union sockunion su; > struct peer *peer; > struct prefix_rd prd; > > @@ -769,21 +766,20 @@ DEFUN (show_bgp_ipv6_encap_rd_neighbor_routes, > return CMD_WARNING; > } > > - su = sockunion_str2su (argv[1]); > - if (su == NULL) > + if (str2sockunion(argv[1], &su)) > { > vty_out (vty, "Malformed address: %s%s", argv[1], VTY_NEWLINE); > return CMD_WARNING; > } > > - peer = peer_lookup (NULL, su); > + peer = peer_lookup (NULL, &su); > if (! peer || ! peer->afc[AFI_IP6][SAFI_ENCAP]) > { > vty_out (vty, "%% No such neighbor or address family%s", > VTY_NEWLINE); > return CMD_WARNING; > } > > - return bgp_show_encap (vty, AFI_IP6, &prd, bgp_show_type_neighbor, su, > 0); > + return bgp_show_encap (vty, AFI_IP6, &prd, bgp_show_type_neighbor, &su, > 0); > } > > DEFUN (show_bgp_ipv4_encap_neighbor_advertised_routes, > diff --git a/bgpd/bgp_mplsvpn.c b/bgpd/bgp_mplsvpn.c > index 08a4272..93406f3 100644 > --- a/bgpd/bgp_mplsvpn.c > +++ b/bgpd/bgp_mplsvpn.c > @@ -969,7 +969,7 @@ DEFUN (show_bgp_ipv4_vpn_rd_neighbor_routes, > "Display routes learned from neighbor\n") > { > int ret; > - union sockunion *su; > + union sockunion su; > struct peer *peer; > struct prefix_rd prd; > > @@ -980,21 +980,20 @@ DEFUN (show_bgp_ipv4_vpn_rd_neighbor_routes, > return CMD_WARNING; > } > > - su = sockunion_str2su (argv[1]); > - if (su == NULL) > + if (str2sockunion(argv[1], &su)) > { > vty_out (vty, "Malformed address: %s%s", argv[1], VTY_NEWLINE); > return CMD_WARNING; > } > > - peer = peer_lookup (NULL, su); > + peer = peer_lookup (NULL, &su); > if (! peer || ! peer->afc[AFI_IP][SAFI_MPLS_VPN]) > { > vty_out (vty, "%% No such neighbor or address family%s", > VTY_NEWLINE); > return CMD_WARNING; > } > > - return bgp_show_mpls_vpn (vty, AFI_IP, &prd, bgp_show_type_neighbor, > su, 0); > + return bgp_show_mpls_vpn (vty, AFI_IP, &prd, bgp_show_type_neighbor, > &su, 0); > } > DEFUN (show_bgp_ipv6_vpn_rd_neighbor_routes, > show_bgp_ipv6_vpn_rd_neighbor_routes_cmd, > @@ -1010,7 +1009,7 @@ DEFUN (show_bgp_ipv6_vpn_rd_neighbor_routes, > "Display routes learned from neighbor\n") > { > int ret; > - union sockunion *su; > + union sockunion su; > struct peer *peer; > struct prefix_rd prd; > > @@ -1021,21 +1020,20 @@ DEFUN (show_bgp_ipv6_vpn_rd_neighbor_routes, > return CMD_WARNING; > } > > - su = sockunion_str2su (argv[1]); > - if (su == NULL) > + if (str2sockunion(argv[1], &su)) > { > vty_out (vty, "Malformed address: %s%s", argv[1], VTY_NEWLINE); > return CMD_WARNING; > } > > - peer = peer_lookup (NULL, su); > + peer = peer_lookup (NULL, &su); > if (! peer || ! peer->afc[AFI_IP6][SAFI_MPLS_VPN]) > { > vty_out (vty, "%% No such neighbor or address family%s", > VTY_NEWLINE); > return CMD_WARNING; > } > > - return bgp_show_mpls_vpn (vty, AFI_IP6, &prd, bgp_show_type_neighbor, > su, 0); > + return bgp_show_mpls_vpn (vty, AFI_IP6, &prd, bgp_show_type_neighbor, > &su, 0); > } > > void > diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c > index 2fd1675..4cd2271 100644 > --- a/bgpd/bgp_route.c > +++ b/bgpd/bgp_route.c > @@ -9085,7 +9085,7 @@ bgp_show_community (struct vty *vty, const char > *view_name, int argc, > struct community *com; > struct buffer *b; > struct bgp *bgp; > - int i; > + int i, rv; > char *str; > int first = 0; > > @@ -9136,9 +9136,11 @@ bgp_show_community (struct vty *vty, const char > *view_name, int argc, > return CMD_WARNING; > } > > - return bgp_show (vty, bgp, afi, safi, > - (exact ? bgp_show_type_community_exact : > - bgp_show_type_community), com); > + rv = bgp_show (vty, bgp, afi, safi, > + (exact ? bgp_show_type_community_exact : > + bgp_show_type_community), com); > + community_free(com); > + return rv; > } > > DEFUN (show_ip_bgp_community, > -- > 2.8.0 > > > _______________________________________________ > Quagga-dev mailing list > Quagga-dev@lists.quagga.net > https://lists.quagga.net/mailman/listinfo/quagga-dev >
_______________________________________________ Quagga-dev mailing list Quagga-dev@lists.quagga.net https://lists.quagga.net/mailman/listinfo/quagga-dev