From: Ben Pfaff Date: Tue, 6 Apr 2010 19:40:11 +0000 (-0700) Subject: in-band: Fix memory leak in get_remote_mac(). X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dc6ddf68b20d802f01cd4a82aca29f442b5c4097;p=openvswitch in-band: Fix memory leak in get_remote_mac(). If the call to netdev_open_default() failed then next_hop_dev was not freed, but it should be. --- diff --git a/ofproto/in-band.c b/ofproto/in-band.c index 7774a51e..94024bce 100644 --- a/ofproto/in-band.c +++ b/ofproto/in-band.c @@ -279,10 +279,12 @@ get_remote_mac(struct in_band *ib) "to controller "IP_FMT"): %s", next_hop_dev, IP_ARGS(&ib->controller_ip), strerror(retval)); + free(next_hop_dev); ib->next_remote_refresh = now + 1; return NULL; } } + free(next_hop_dev); /* Look up the MAC address of the next-hop IP address. */ retval = netdev_arp_lookup(ib->remote_netdev, r_in4.s_addr, @@ -292,7 +294,6 @@ get_remote_mac(struct in_band *ib) IP_ARGS(&r_in4.s_addr), strerror(retval)); } have_mac = !eth_addr_is_zero(ib->remote_mac); - free(next_hop_dev); if (have_mac && !eth_addr_equals(ib->last_remote_mac, ib->remote_mac)) { VLOG_DBG("remote MAC address changed from "ETH_ADDR_FMT" to "