Fix cg_read_strcmp()
Fix a couple issues with cg_read_strcmp(), to improve correctness of
cgroup tests
- Fix cg_read_strcmp() always returning 0 for empty "needle" strings.
Previously, this function read to a size = 1 buffer when comparing
against empty strings, which would lead to cg_read_strcmp() comparing
two empty strings.
- Fix a memory leak in cg_read_strcmp()
Fixes: 84092dbcf9
("selftests: cgroup: add memory controller self-tests")
Signed-off-by: Jay Kamat <jgkamat@fb.com>
Acked-by: Roman Gushchin <guro@fb.com>
Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
This commit is contained in:
parent
7035c56899
commit
48c2bb0b9c
|
@ -89,17 +89,28 @@ int cg_read(const char *cgroup, const char *control, char *buf, size_t len)
|
|||
int cg_read_strcmp(const char *cgroup, const char *control,
|
||||
const char *expected)
|
||||
{
|
||||
size_t size = strlen(expected) + 1;
|
||||
size_t size;
|
||||
char *buf;
|
||||
int ret;
|
||||
|
||||
/* Handle the case of comparing against empty string */
|
||||
if (!expected)
|
||||
size = 32;
|
||||
else
|
||||
size = strlen(expected) + 1;
|
||||
|
||||
buf = malloc(size);
|
||||
if (!buf)
|
||||
return -1;
|
||||
|
||||
if (cg_read(cgroup, control, buf, size))
|
||||
if (cg_read(cgroup, control, buf, size)) {
|
||||
free(buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return strcmp(expected, buf);
|
||||
ret = strcmp(expected, buf);
|
||||
free(buf);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int cg_read_strstr(const char *cgroup, const char *control, const char *needle)
|
||||
|
|
Loading…
Reference in New Issue