selftests/powerpc: Add ptrace setup_core_pattern() null-terminator
authorBenjamin Gray <bgray@linux.ibm.com>
Mon, 28 Nov 2022 04:19:43 +0000 (15:19 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 2 Dec 2022 07:04:27 +0000 (18:04 +1100)
- malloc() does not zero the buffer,
- fread() does not null-terminate it's output,
- `cat /proc/sys/kernel/core_pattern | hexdump -C` shows the file is
  not inherently null-terminated

So using string operations on the buffer is risky. Explicitly add a null
character to the end to make it safer.

Signed-off-by: Benjamin Gray <bgray@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221128041948.58339-3-bgray@linux.ibm.com
tools/testing/selftests/powerpc/ptrace/core-pkey.c

index 1a70a96..4e8d0ce 100644 (file)
@@ -383,7 +383,7 @@ static int setup_core_pattern(char **core_pattern_, bool *changed_)
                goto out;
        }
 
-       ret = fread(core_pattern, 1, PATH_MAX, f);
+       ret = fread(core_pattern, 1, PATH_MAX - 1, f);
        fclose(f);
        if (!ret) {
                perror("Error reading core_pattern file");
@@ -391,6 +391,8 @@ static int setup_core_pattern(char **core_pattern_, bool *changed_)
                goto out;
        }
 
+       core_pattern[ret] = '\0';
+
        /* Check whether we can predict the name of the core file. */
        if (!strcmp(core_pattern, "core") || !strcmp(core_pattern, "core.%p"))
                *changed_ = false;