mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
LXC fix virCgroupGetValueStr problem with \n
A cgroup file returns integer value terminated with '\n' and remaining it has sometimes harmful effects, for example it leads virStrToLong_ull to fail. * src/util/cgroup.c: strip out terminating \n when reading a value
This commit is contained in:
parent
4f4a1deccb
commit
41fa653f32
@ -309,6 +309,10 @@ static int virCgroupGetValueStr(virCgroupPtr group,
|
|||||||
DEBUG("Failed to read %s: %m\n", keypath);
|
DEBUG("Failed to read %s: %m\n", keypath);
|
||||||
rc = -errno;
|
rc = -errno;
|
||||||
} else {
|
} else {
|
||||||
|
/* Terminated with '\n' has sometimes harmful effects to the caller */
|
||||||
|
char *p = strchr(*value, '\n');
|
||||||
|
if (p) *p = '\0';
|
||||||
|
|
||||||
rc = 0;
|
rc = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -969,13 +973,7 @@ int virCgroupSetFreezerState(virCgroupPtr group, const char *state)
|
|||||||
|
|
||||||
int virCgroupGetFreezerState(virCgroupPtr group, char **state)
|
int virCgroupGetFreezerState(virCgroupPtr group, char **state)
|
||||||
{
|
{
|
||||||
int ret;
|
return virCgroupGetValueStr(group,
|
||||||
ret = virCgroupGetValueStr(group,
|
|
||||||
VIR_CGROUP_CONTROLLER_CPU,
|
VIR_CGROUP_CONTROLLER_CPU,
|
||||||
"freezer.state", state);
|
"freezer.state", state);
|
||||||
if (ret == 0) {
|
|
||||||
char *p = strchr(*state, '\n');
|
|
||||||
if (p) *p = '\0';
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user