]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
v2 [patch 1/6] wrapper.c: Fix memory leaks
authorDhaval Giani <dhaval.giani@gmail.com>
Tue, 16 Nov 2010 13:29:46 +0000 (14:29 +0100)
committerDhaval Giani <dhaval.giani@gmail.com>
Tue, 16 Nov 2010 15:39:16 +0000 (16:39 +0100)
Steve Grubb was kind enough to do a code review at
http://article.gmane.org/gmane.comp.lib.libcg.devel/2485
and spotted a few memory leaks. Take care of them!

Reported-by: Steve Grubb <sgrubb@redhat.com>
Signed-off-by: Dhaval Giani <dhaval.giani@gmail.com>
Acked-By: Jan Safranek <jsafrane@redhat.com>
src/wrapper.c

index 00a74bec2777ce1296d3c63b1c136cd04ba1dd56..83c0030cbf3e23f2ce35afd4c64c5ce4c939dfb7 100644 (file)
@@ -162,8 +162,10 @@ int cgroup_add_value_int64(struct cgroup_controller *controller,
        ret = snprintf(cntl_value->value,
          sizeof(cntl_value->value), "%" PRId64, value);
 
-       if (ret >= sizeof(cntl_value->value))
+       if (ret >= sizeof(cntl_value->value)) {
+               free(cntl_value);
                return ECGINVAL;
+       }
 
        controller->values[controller->index] = cntl_value;
        controller->index++;
@@ -199,8 +201,10 @@ int cgroup_add_value_uint64(struct cgroup_controller *controller,
        ret = snprintf(cntl_value->value, sizeof(cntl_value->value),
                                                "%" PRIu64, value);
 
-       if (ret >= sizeof(cntl_value->value))
+       if (ret >= sizeof(cntl_value->value)) {
+               free(cntl_value);
                return ECGINVAL;
+       }
 
        controller->values[controller->index] = cntl_value;
        controller->index++;
@@ -241,8 +245,10 @@ int cgroup_add_value_bool(struct cgroup_controller *controller,
                ret = snprintf(cntl_value->value,
                                sizeof(cntl_value->value), "0");
 
-       if (ret >= sizeof(cntl_value->value))
+       if (ret >= sizeof(cntl_value->value)) {
+               free(cntl_value);
                return ECGINVAL;
+       }
 
        controller->values[controller->index] = cntl_value;
        controller->index++;