diff --git a/src/config.c b/src/config.c index 3ffa263..b5d51b3 100644 --- a/src/config.c +++ b/src/config.c @@ -326,7 +326,7 @@ int config_group_task_perm(char *perm_type, char *value, int flag) long val = atoi(value); char buffer[CGROUP_BUFFER_LEN]; struct cgroup *config_cgroup; - int table_index; + int table_index, ret; switch (flag) { case CGROUP: @@ -370,10 +370,10 @@ int config_group_task_perm(char *perm_type, char *value, int flag) if (!group) goto group_task_error; - getgrnam_r(value, group, buffer, + ret = getgrnam_r(value, group, buffer, CGROUP_BUFFER_LEN, &group_buffer); - if (group_buffer == NULL) { + if (ret != 0 || group_buffer == NULL) { free(group); goto group_task_error; } @@ -439,7 +439,7 @@ int config_group_admin_perm(char *perm_type, char *value, int flag) struct cgroup *config_cgroup; long val = atoi(value); char buffer[CGROUP_BUFFER_LEN]; - int table_index; + int table_index, ret; switch (flag) { case CGROUP: @@ -482,10 +482,10 @@ int config_group_admin_perm(char *perm_type, char *value, int flag) if (!group) goto admin_error; - getgrnam_r(value, group, buffer, + ret = getgrnam_r(value, group, buffer, CGROUP_BUFFER_LEN, &group_buffer); - if (group_buffer == NULL) { + if (ret != 0 || group_buffer == NULL) { free(group); goto admin_error; } diff --git a/src/daemon/cgrulesengd.c b/src/daemon/cgrulesengd.c index 4cef53e..90920d1 100644 --- a/src/daemon/cgrulesengd.c +++ b/src/daemon/cgrulesengd.c @@ -654,7 +654,7 @@ close: static int cgre_create_netlink_socket_process_msg(void) { - int sk_nl = 0, sk_unix = 0, sk_max; + int sk_nl = -1, sk_unix = -1, sk_max; struct sockaddr_nl my_nla; char buff[BUFF_SIZE]; int rc = -1; diff --git a/src/tools/lscgroup.c b/src/tools/lscgroup.c index bfb1724..d15a0c2 100644 --- a/src/tools/lscgroup.c +++ b/src/tools/lscgroup.c @@ -96,11 +96,11 @@ static int display_controller_data(char *input_path, char *controller, char *nam if (ret != 0) return ret; - strncpy(cgroup_dir_path, info.full_path, FILENAME_MAX); + strncpy(cgroup_dir_path, info.full_path, FILENAME_MAX - 1); /* remove problematic '/' characters from cgroup directory path*/ trim_filepath(cgroup_dir_path); - strncpy(input_dir_path, input_path, FILENAME_MAX); + strncpy(input_dir_path, input_path, FILENAME_MAX - 1); /* remove problematic '/' characters from input directory path*/ trim_filepath(input_dir_path);