]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
Fix memory leak in cgroup_read_stats iterator
authorJan Safranek <jsafrane@redhat.com>
Mon, 7 Jun 2010 09:58:19 +0000 (11:58 +0200)
committerDhaval Giani <dhaval.giani@gmail.com>
Tue, 6 Jul 2010 13:06:47 +0000 (15:06 +0200)
getline(&line, ...) can return -1 *and* allocate memory for returned (empty)
line - so be sure to free it.

Signed-off-by: Jan Safranek <jsafrane@redhat.com>
Signed-off-by: Dhaval Giani <dhaval.giani@gmail.com>
src/api.c

index 7774460e970fefd91870f92b493ac969b19f468c..5409c9c21eb0b7e40d0c7227df13b4bb045d8132 100644 (file)
--- a/src/api.c
+++ b/src/api.c
@@ -2784,8 +2784,10 @@ static int cg_read_stat(FILE *fp, struct cgroup_stat *cgroup_stat)
        char *saveptr = NULL;
 
        read_bytes = getline(&line, &len, fp);
-       if (read_bytes == -1)
-               return ECGEOF;
+       if (read_bytes == -1) {
+               ret = ECGEOF;
+               goto out_free;
+       }
 
        token = strtok_r(line, " ", &saveptr);
        if (!token) {