Clone3_set_tid uses getline(&line, &len, f) in a loop to read the child's process status. The code expects that getline allocates the buffer for the line on the first loop iteration. For this, glibc[1] requires char *line to be set to NULL:
> ssize_t getline(char **restrict lineptr, ...) > If *lineptr is set to NULL before the call, then getline() will > allocate a buffer for storing the line. However, char *line is only declared, leading to an undefined initialization value. Fix this by properly initializing it to NULL. Same issue fixed in mlock-random-test. [1] https://man7.org/linux/man-pages/man3/getline.3.html Fixes: 41585bbeeef9 ("selftests: add tests for clone3() with *set_tid") Fixes: 26b4224d9961 ("selftests: expanding more mlock selftest") Signed-off-by: Chris Gellermann <[email protected]> --- tools/testing/selftests/clone3/clone3_set_tid.c | 2 +- tools/testing/selftests/mm/mlock-random-test.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/clone3/clone3_set_tid.c b/tools/testing/selftests/clone3/clone3_set_tid.c index 5c944aee6b41..485efa7c9eed 100644 --- a/tools/testing/selftests/clone3/clone3_set_tid.c +++ b/tools/testing/selftests/clone3/clone3_set_tid.c @@ -141,7 +141,7 @@ int main(int argc, char *argv[]) { FILE *f; char buf; - char *line; + char *line = NULL; int status; int ret = -1; size_t len = 0; diff --git a/tools/testing/selftests/mm/mlock-random-test.c b/tools/testing/selftests/mm/mlock-random-test.c index 9d349c151360..16294bc7dae6 100644 --- a/tools/testing/selftests/mm/mlock-random-test.c +++ b/tools/testing/selftests/mm/mlock-random-test.c @@ -84,7 +84,7 @@ int get_proc_locked_vm_size(void) int get_proc_page_size(unsigned long addr) { FILE *smaps; - char *line; + char *line = NULL; unsigned long mmupage_size = 0; size_t size; -- 2.47.3

