Blame SOURCES/libcgroup-0.40.rc1-coverity.patch

2ae3c9
diff -up libcgroup-0.41/src/api.c.coverity libcgroup-0.41/src/api.c
2ae3c9
--- libcgroup-0.41/src/api.c.coverity	2014-01-13 20:52:49.853838149 +0100
2ae3c9
+++ libcgroup-0.41/src/api.c	2014-01-13 20:52:49.854838142 +0100
2ae3c9
@@ -2791,7 +2791,6 @@ static int cgroup_create_template_group(
2ae3c9
 	if (group_name == NULL) {
2ae3c9
 		ret = ECGOTHER;
2ae3c9
 		last_errno = errno;
2ae3c9
-		free(template_name);
2ae3c9
 		goto end;
2ae3c9
 	}
2ae3c9
 
2ae3c9
diff -up libcgroup-0.41/src/config.c.coverity libcgroup-0.41/src/config.c
2ae3c9
--- libcgroup-0.41/src/config.c.coverity	2014-01-13 15:05:56.000000000 +0100
2ae3c9
+++ libcgroup-0.41/src/config.c	2014-01-13 20:52:49.854838142 +0100
2ae3c9
@@ -323,7 +323,7 @@ int config_group_task_perm(char *perm_ty
2ae3c9
 	long val = atoi(value);
2ae3c9
 	char buffer[CGROUP_BUFFER_LEN];
2ae3c9
 	struct cgroup *config_cgroup;
2ae3c9
-	int table_index;
2ae3c9
+	int table_index, ret;
2ae3c9
 
2ae3c9
 	switch (flag) {
2ae3c9
 	case CGROUP:
2ae3c9
@@ -367,10 +367,10 @@ int config_group_task_perm(char *perm_ty
2ae3c9
 			if (!group)
2ae3c9
 				goto group_task_error;
2ae3c9
 
2ae3c9
-			getgrnam_r(value, group, buffer,
2ae3c9
+			ret = getgrnam_r(value, group, buffer,
2ae3c9
 					CGROUP_BUFFER_LEN, &group_buffer);
2ae3c9
 
2ae3c9
-			if (group_buffer == NULL) {
2ae3c9
+			if (ret != 0 || group_buffer == NULL) {
2ae3c9
 				free(group);
2ae3c9
 				goto group_task_error;
2ae3c9
 			}
2ae3c9
@@ -436,7 +436,7 @@ int config_group_admin_perm(char *perm_t
2ae3c9
 	struct cgroup *config_cgroup;
2ae3c9
 	long val = atoi(value);
2ae3c9
 	char buffer[CGROUP_BUFFER_LEN];
2ae3c9
-	int table_index;
2ae3c9
+	int table_index, ret;
2ae3c9
 
2ae3c9
 	switch (flag) {
2ae3c9
 	case CGROUP:
2ae3c9
@@ -479,10 +479,10 @@ int config_group_admin_perm(char *perm_t
2ae3c9
 			if (!group)
2ae3c9
 				goto admin_error;
2ae3c9
 
2ae3c9
-			getgrnam_r(value, group, buffer,
2ae3c9
+			ret = getgrnam_r(value, group, buffer,
2ae3c9
 					CGROUP_BUFFER_LEN, &group_buffer);
2ae3c9
 
2ae3c9
-			if (group_buffer == NULL) {
2ae3c9
+			if (ret != 0 || group_buffer == NULL) {
2ae3c9
 				free(group);
2ae3c9
 				goto admin_error;
2ae3c9
 			}
2ae3c9
diff -up libcgroup-0.41/src/daemon/cgrulesengd.c.coverity libcgroup-0.41/src/daemon/cgrulesengd.c
2ae3c9
--- libcgroup-0.41/src/daemon/cgrulesengd.c.coverity	2014-01-13 15:05:56.000000000 +0100
2ae3c9
+++ libcgroup-0.41/src/daemon/cgrulesengd.c	2014-01-13 20:52:49.854838142 +0100
2ae3c9
@@ -646,7 +646,7 @@ close:
2ae3c9
 
2ae3c9
 static int cgre_create_netlink_socket_process_msg(void)
2ae3c9
 {
2ae3c9
-	int sk_nl = 0, sk_unix = 0, sk_max;
2ae3c9
+	int sk_nl = -1, sk_unix = -1, sk_max;
2ae3c9
 	struct sockaddr_nl my_nla;
2ae3c9
 	char buff[BUFF_SIZE];
2ae3c9
 	int rc = -1;
2ae3c9
@@ -784,9 +784,9 @@ static int cgre_create_netlink_socket_pr
2ae3c9
 	}
2ae3c9
 
2ae3c9
 close_and_exit:
2ae3c9
-	if (sk_nl > 0)
2ae3c9
+	if (sk_nl > -1)
2ae3c9
 		close(sk_nl);
2ae3c9
-	if (sk_unix > 0)
2ae3c9
+	if (sk_unix > -1)
2ae3c9
 		close(sk_unix);
2ae3c9
 	return rc;
2ae3c9
 }
2ae3c9
diff -upr libcgroup-0.40.rc1.orig/src/tools/lscgroup.c libcgroup-0.40.rc1/src/tools/lscgroup.c
2ae3c9
--- libcgroup-0.40.rc1.orig/src/tools/lscgroup.c	2013-05-21 15:36:04.000000000 +0200
2ae3c9
+++ libcgroup-0.40.rc1/src/tools/lscgroup.c	2013-11-04 14:26:53.400473523 +0100
2ae3c9
@@ -97,11 +97,11 @@ static int display_controller_data(char
2ae3c9
 	if (ret != 0)
2ae3c9
 		return ret;
2ae3c9
 
2ae3c9
-	strncpy(cgroup_dir_path, info.full_path, FILENAME_MAX);
2ae3c9
+	strncpy(cgroup_dir_path, info.full_path, FILENAME_MAX - 1);
2ae3c9
 	/* remove problematic  '/' characters from cgroup directory path*/
2ae3c9
 	trim_filepath(cgroup_dir_path);
2ae3c9
 
2ae3c9
-	strncpy(input_dir_path, input_path, FILENAME_MAX);
2ae3c9
+	strncpy(input_dir_path, input_path, FILENAME_MAX - 1);
2ae3c9
 
2ae3c9
 	/* remove problematic  '/' characters from input directory path*/
2ae3c9
 	trim_filepath(input_dir_path);