From: Felix Fietkau Date: Mon, 19 Mar 2012 20:18:52 +0000 (+0100) Subject: fix a memory leak X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=commitdiff_plain;h=cfeabcaf0e69b02bac6c86edc223d2eb2e2367d3;ds=inline fix a memory leak --- diff --git a/device.c b/device.c index 1d842cf..46177a2 100644 --- a/device.c +++ b/device.c @@ -482,6 +482,7 @@ void device_free(struct device *dev) { __devlock++; + free(dev->config); dev->type->free(dev); __devlock--; } diff --git a/tunnel.c b/tunnel.c index b6e902a..b45ac98 100644 --- a/tunnel.c +++ b/tunnel.c @@ -6,7 +6,6 @@ struct tunnel { struct device dev; device_state_cb set_state; - struct blob_attr *config; }; static int @@ -16,7 +15,7 @@ tunnel_set_state(struct device *dev, bool up) int ret; if (up) { - ret = system_add_ip_tunnel(dev->ifname, tun->config); + ret = system_add_ip_tunnel(dev->ifname, dev->config); if (ret != 0) return ret; } @@ -36,7 +35,6 @@ tunnel_create(const char *name, struct blob_attr *attr) tun = calloc(1, sizeof(*tun)); dev = &tun->dev; - tun->config = config_memdup(attr); device_init(dev, &tunnel_device_type, name); tun->set_state = dev->set_state; dev->set_state = tunnel_set_state;