From a136cb2d61f43bdd00076374ac174f70b7e31c42 Mon Sep 17 00:00:00 2001 From: Ken'ichi Ohmichi Date: Wed, 13 May 2009 09:59:31 +0900 Subject: [PATCH] Fix the error handling if failing to open/etc/cgrules.conf. Hi, If failing to open /etc/cgrules.conf in cgroup_parse_rules(), rl_lock should be unlocked. This patch fixes the code for doing it. Thanks Ken'ichi Ohmichi Signed-off-by: Ken'ichi Ohmichi Signed-off-by: Dhaval Giani --- src/api.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/api.c b/src/api.c index e29c966c..4902c456 100644 --- a/src/api.c +++ b/src/api.c @@ -318,7 +318,8 @@ static int cgroup_parse_rules(bool cache, uid_t muid, gid_t mgid) " error: %s\n", CGRULES_CONF_FILE, strerror(errno)); last_errno = errno; - goto finish; + ret = ECGOTHER; + goto unlock; } buff = calloc(CGROUP_RULE_MAXLINE, sizeof(char)); @@ -326,7 +327,7 @@ static int cgroup_parse_rules(bool cache, uid_t muid, gid_t mgid) cgroup_dbg("Out of memory? Error: %s\n", strerror(errno)); last_errno = errno; ret = ECGOTHER; - goto close_unlock; + goto close; } /* Determine which list we're using. */ @@ -542,10 +543,10 @@ parsefail: cleanup: free(buff); -close_unlock: +close: fclose(fp); +unlock: pthread_rwlock_unlock(&rl_lock); -finish: return ret; } -- 2.47.2