diff options
-rw-r--r-- | src/api.c | 7 | ||||
-rw-r--r-- | src/config.c | 1 | ||||
-rw-r--r-- | src/tools/cgclassify.c | 2 |
3 files changed, 8 insertions, 2 deletions
@@ -696,14 +696,17 @@ static int cg_test_mounted_fs() temp_ent = (struct mntent *) malloc(sizeof(struct mntent)); if (!temp_ent) { /* We just fail at the moment. */ + fclose(proc_mount); return 0; } ent = getmntent_r(proc_mount, temp_ent, mntent_buff, sizeof(mntent_buff)); - if (!ent) - return 0; + if (!ent) { + ret = 0; + goto done; + } while (strcmp(ent->mnt_type, "cgroup") !=0) { ent = getmntent_r(proc_mount, temp_ent, mntent_buff, diff --git a/src/config.c b/src/config.c index b188985..a93fcce 100644 --- a/src/config.c +++ b/src/config.c @@ -469,6 +469,7 @@ int cgroup_config_load_config(const char *pathname) if (yyparse() != 0) { cgroup_dbg("Failed to parse file %s\n", pathname); + fclose(yyin); return ECGROUPPARSEFAIL; } diff --git a/src/tools/cgclassify.c b/src/tools/cgclassify.c index c044608..79d3477 100644 --- a/src/tools/cgclassify.c +++ b/src/tools/cgclassify.c @@ -57,9 +57,11 @@ int euid_of_pid(pid_t pid) (int *)&euid, (int *)&suid, (int *)&fsuid); cgroup_dbg("Scanned proc values are %d %d %d %d\n", ruid, euid, suid, fsuid); + fclose(fp); return euid; } } + fclose(fp); /* If we are here, we could not find euid. Return error. */ return -1; |