Close the file when fgets fails.
Signed-off-by: Jan Safranek <jsafrane@redhat.com>
Acked-by: Dhaval Giani <dhaval.giani@gmail.com>
{
FILE *proc_cgroup = NULL;
char buf[FILENAME_MAX];
+ int ret;
if (!info)
return ECGINVAL;
if (!fgets(buf, FILENAME_MAX, proc_cgroup)) {
last_errno = errno;
+ fclose(proc_cgroup);
+ *handle = NULL;
return ECGOTHER;
}
*handle = proc_cgroup;
- return cgroup_get_all_controller_next(handle, info);
+ ret = cgroup_get_all_controller_next(handle, info);
+ if (ret != 0) {
+ fclose(proc_cgroup);
+ *handle = NULL;
+ }
+ return ret;
}
static int pid_compare(const void *a, const void *b)