ret = ECGINVAL;
goto out_free;
}
- strncpy(cgroup_stat->name, token, FILENAME_MAX);
+ strncpy(cgroup_stat->name, token, FILENAME_MAX - 1);
token = strtok_r(NULL, " ", &saveptr);
if (!token) {
ret = ECGINVAL;
goto out_free;
}
- strncpy(cgroup_stat->value, token, CG_VALUE_MAX);
+ strncpy(cgroup_stat->value, token, CG_VALUE_MAX - 1);
out_free:
free(line);
goto out_unlock;
}
- strncpy(info->name, cg_mount_table[*pos].name, FILENAME_MAX);
+ strncpy(info->name, cg_mount_table[*pos].name, FILENAME_MAX - 1);
- strncpy(info->path, cg_mount_table[*pos].mount.path, FILENAME_MAX);
+ strncpy(info->path, cg_mount_table[*pos].mount.path, FILENAME_MAX - 1);
(*pos)++;
*handle = pos;
}
config_cgroup = &config_table[*table_index];
- strncpy(config_cgroup->name, cg_name, FILENAME_MAX);
+ strncpy(config_cgroup->name, cg_name, FILENAME_MAX - 1);
/*
* Since this will be the last part to be parsed.
int i, j, k;
struct cgroup *t_cgroup;
char buffer[FILENAME_MAX];
- struct cgroup *aux_cgroup;
+ struct cgroup *aux_cgroup = NULL;
struct cgroup_controller *cgc;
int found;
}
end:
+ cgroup_free(&aux_cgroup);
return ret;
}
goto err;
}
fprintf(of, "\t\t%s=\"%s\";\n", output_name, value);
+ free(value);
}
fprintf(of, "\t}\n");
}
return NULL;
init_cgroup(cgroup);
- strncpy(cgroup->name, name, sizeof(cgroup->name));
+ strncpy(cgroup->name, name, sizeof(cgroup->name) - 1);
return cgroup;
}
if (!controller)
return NULL;
- strncpy(controller->name, name, sizeof(controller->name));
+ strncpy(controller->name, name, sizeof(controller->name) - 1);
controller->cgroup = cgroup;
controller->index = 0;
goto scgroup_err;
}
- strncpy(con, name_value[i].name, FILENAME_MAX);
+ strncpy(con, name_value[i].name, FILENAME_MAX - 1);
strtok(con, ".");
/* find out whether we have to add the controller or
if (fs_mounted) {
ctl1 = atoi(argv[2]);
ctl2 = atoi(argv[3]);
- strncpy(mountpoint, argv[4], sizeof(mountpoint));
+ strncpy(mountpoint, argv[4], sizeof(mountpoint) - 1);
cgroup_dbg("C:DBG: mountpoint1 as recieved from script=%s\n",
mountpoint);
if (fs_mounted == FS_MULTI_MOUNTED) {
- strncpy(mountpoint2, argv[5], sizeof(mountpoint2));
+ strncpy(mountpoint2, argv[5], sizeof(mountpoint2) - 1);
cgroup_dbg("C:DBG: mountpoint2 as recieved from "
"script=%s\n", mountpoint2);
}
}
root_len = strlen(info.full_path) - 1;
- strncpy(cgroup_path, info.path, FILENAME_MAX);
+ strncpy(cgroup_path, info.path, FILENAME_MAX - 1);
ret = read_stats(cgroup_path, controller);
if (ret < 0)
exit(EXIT_FAILURE);
ECGEOF) {
if (info.type != CGROUP_FILE_TYPE_DIR)
continue;
- strncpy(cgroup_path, info.full_path + root_len, FILENAME_MAX);
+ strncpy(cgroup_path, info.full_path + root_len, FILENAME_MAX - 1);
strcat(cgroup_path, "/");
ret = read_stats(cgroup_path, controller);
if (ret < 0)
char group[FILENAME_MAX];
char controller_name[FILENAME_MAX], control_file[FILENAME_MAX];
- strncpy(group, grpname, sizeof(group));
+ strncpy(group, grpname, sizeof(group) - 1);
retval = set_controller(ctl, controller_name, control_file);
if (retval) {
fprintf(stderr, "Setting controller failled\n");