From cfeabcaf0e69b02bac6c86edc223d2eb2e2367d3 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 19 Mar 2012 21:18:52 +0100 Subject: [PATCH] fix a memory leak --- device.c | 1 + tunnel.c | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) 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; -- 2.25.1