fix a memleak
[project/procd.git] / instance.c
index 19454c7..b84e7c8 100644 (file)
@@ -222,6 +222,8 @@ instance_config_move(struct service_instance *in, struct service_instance *in_sr
        in->command = in_src->command;
        in->name = in_src->name;
        in->node.avl.key = in_src->node.avl.key;
+
+       free(in->config);
        in->config = in_src->config;
        in_src->config = NULL;
 }
@@ -246,12 +248,14 @@ instance_free(struct service_instance *in)
        uloop_process_delete(&in->proc);
        uloop_timeout_cancel(&in->timeout);
        instance_config_cleanup(in);
+       free(in->config);
        free(in);
 }
 
 void
 instance_init(struct service_instance *in, struct service *s, struct blob_attr *config)
 {
+       config = blob_memdup(config);
        in->srv = s;
        in->name = blobmsg_name(config);
        in->config = config;