cgroups: s/strtok_r()/lxc_iterate_parts()

parent c97e6a4b
...@@ -274,14 +274,13 @@ static uint32_t *lxc_cpumask(char *buf, size_t nbits) ...@@ -274,14 +274,13 @@ static uint32_t *lxc_cpumask(char *buf, size_t nbits)
char *token; char *token;
size_t arrlen; size_t arrlen;
uint32_t *bitarr; uint32_t *bitarr;
char *saveptr = NULL;
arrlen = BITS_TO_LONGS(nbits); arrlen = BITS_TO_LONGS(nbits);
bitarr = calloc(arrlen, sizeof(uint32_t)); bitarr = calloc(arrlen, sizeof(uint32_t));
if (!bitarr) if (!bitarr)
return NULL; return NULL;
for (; (token = strtok_r(buf, ",", &saveptr)); buf = NULL) { lxc_iterate_parts(token, buf, ",") {
errno = 0; errno = 0;
unsigned end, start; unsigned end, start;
char *range; char *range;
...@@ -728,7 +727,7 @@ static char **cg_hybrid_get_controllers(char **klist, char **nlist, char *line, ...@@ -728,7 +727,7 @@ static char **cg_hybrid_get_controllers(char **klist, char **nlist, char *line,
*/ */
int i; int i;
char *dup, *p2, *tok; char *dup, *p2, *tok;
char *p = line, *saveptr = NULL, *sep = ","; char *p = line, *sep = ",";
char **aret = NULL; char **aret = NULL;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
...@@ -755,16 +754,17 @@ static char **cg_hybrid_get_controllers(char **klist, char **nlist, char *line, ...@@ -755,16 +754,17 @@ static char **cg_hybrid_get_controllers(char **klist, char **nlist, char *line,
*p2 = '\0'; *p2 = '\0';
if (type == CGROUP_SUPER_MAGIC) { if (type == CGROUP_SUPER_MAGIC) {
/* strdup() here for v1 hierarchies. Otherwise strtok_r() will /* strdup() here for v1 hierarchies. Otherwise
* destroy mountpoints such as "/sys/fs/cgroup/cpu,cpuacct". * lxc_iterate_parts() will destroy mountpoints such as
* "/sys/fs/cgroup/cpu,cpuacct".
*/ */
dup = strdup(p); dup = strdup(p);
if (!dup) if (!dup)
return NULL; return NULL;
for (tok = strtok_r(dup, sep, &saveptr); tok; lxc_iterate_parts(tok, dup, sep) {
tok = strtok_r(NULL, sep, &saveptr))
must_append_controller(klist, nlist, &aret, tok); must_append_controller(klist, nlist, &aret, tok);
}
free(dup); free(dup);
} }
...@@ -786,15 +786,14 @@ static char **cg_unified_make_empty_controller(void) ...@@ -786,15 +786,14 @@ static char **cg_unified_make_empty_controller(void)
static char **cg_unified_get_controllers(const char *file) static char **cg_unified_get_controllers(const char *file)
{ {
char *buf, *tok; char *buf, *tok;
char *saveptr = NULL, *sep = " \t\n"; char *sep = " \t\n";
char **aret = NULL; char **aret = NULL;
buf = read_file(file); buf = read_file(file);
if (!buf) if (!buf)
return NULL; return NULL;
for (tok = strtok_r(buf, sep, &saveptr); tok; lxc_iterate_parts(tok, buf, sep) {
tok = strtok_r(NULL, sep, &saveptr)) {
int newentry; int newentry;
char *copy; char *copy;
...@@ -878,7 +877,7 @@ static char *copy_to_eol(char *p) ...@@ -878,7 +877,7 @@ static char *copy_to_eol(char *p)
*/ */
static bool controller_in_clist(char *cgline, char *c) static bool controller_in_clist(char *cgline, char *c)
{ {
char *tok, *saveptr = NULL, *eol, *tmp; char *tok, *eol, *tmp;
size_t len; size_t len;
eol = strchr(cgline, ':'); eol = strchr(cgline, ':');
...@@ -890,8 +889,7 @@ static bool controller_in_clist(char *cgline, char *c) ...@@ -890,8 +889,7 @@ static bool controller_in_clist(char *cgline, char *c)
memcpy(tmp, cgline, len); memcpy(tmp, cgline, len);
tmp[len] = '\0'; tmp[len] = '\0';
for (tok = strtok_r(tmp, ",", &saveptr); tok; lxc_iterate_parts(tok, tmp, ",") {
tok = strtok_r(NULL, ",", &saveptr)) {
if (strcmp(tok, c) == 0) if (strcmp(tok, c) == 0)
return true; return true;
} }
...@@ -955,7 +953,7 @@ static int get_existing_subsystems(char ***klist, char ***nlist) ...@@ -955,7 +953,7 @@ static int get_existing_subsystems(char ***klist, char ***nlist)
return -1; return -1;
while (getline(&line, &len, f) != -1) { while (getline(&line, &len, f) != -1) {
char *p, *p2, *tok, *saveptr = NULL; char *p, *p2, *tok;
p = strchr(line, ':'); p = strchr(line, ':');
if (!p) if (!p)
continue; continue;
...@@ -977,8 +975,7 @@ static int get_existing_subsystems(char ***klist, char ***nlist) ...@@ -977,8 +975,7 @@ static int get_existing_subsystems(char ***klist, char ***nlist)
continue; continue;
} }
for (tok = strtok_r(p, ",", &saveptr); tok; lxc_iterate_parts(tok, p, ",") {
tok = strtok_r(NULL, ",", &saveptr)) {
if (strncmp(tok, "name=", 5) == 0) if (strncmp(tok, "name=", 5) == 0)
must_append_string(nlist, tok); must_append_string(nlist, tok);
else else
...@@ -2531,13 +2528,13 @@ static bool cg_init(struct cgroup_ops *ops) ...@@ -2531,13 +2528,13 @@ static bool cg_init(struct cgroup_ops *ops)
tmp = lxc_global_config_value("lxc.cgroup.use"); tmp = lxc_global_config_value("lxc.cgroup.use");
if (tmp) { if (tmp) {
char *chop, *cur, *pin; char *chop, *cur, *pin;
char *saveptr = NULL;
pin = must_copy_string(tmp); pin = must_copy_string(tmp);
chop = pin; chop = pin;
for (; (cur = strtok_r(chop, ",", &saveptr)); chop = NULL) lxc_iterate_parts(cur, chop, ",") {
must_append_string(&ops->cgroup_use, cur); must_append_string(&ops->cgroup_use, cur);
}
free(pin); free(pin);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment