Blame SOURCES/libcgroup-0.41-api.c-tasks-file-warning.patch

e09b92
diff --git a/src/api.c b/src/api.c
e09b92
index a98e829..d19abdd 100644
e09b92
--- a/src/api.c
e09b92
+++ b/src/api.c
e09b92
@@ -1190,12 +1190,15 @@ static int __cgroup_attach_task_pid(char *path, pid_t tid)
e09b92
 	if (!tasks) {
e09b92
 		switch (errno) {
e09b92
 		case EPERM:
e09b92
-			return ECGROUPNOTOWNER;
e09b92
+			ret = ECGROUPNOTOWNER;
e09b92
+			break;
e09b92
 		case ENOENT:
e09b92
-			return ECGROUPNOTEXIST;
e09b92
+			ret = ECGROUPNOTEXIST;
e09b92
+			break;
e09b92
 		default:
e09b92
-			return ECGROUPNOTALLOWED;
e09b92
+			ret = ECGROUPNOTALLOWED;
e09b92
 		}
e09b92
+		goto err;
e09b92
 	}
e09b92
 	ret = fprintf(tasks, "%d", tid);
e09b92
 	if (ret < 0) {
e09b92
@@ -1214,7 +1217,8 @@ static int __cgroup_attach_task_pid(char *path, pid_t tid)
e09b92
 err:
e09b92
 	cgroup_warn("Warning: cannot write tid %d to %s:%s\n",
e09b92
 			tid, path, strerror(errno));
e09b92
-	fclose(tasks);
e09b92
+	if (tasks)
e09b92
+		fclose(tasks);
e09b92
 	return ret;
e09b92
 }
e09b92