]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/mm: compaction_test: fix off by one in check_compaction()
authorDan Carpenter <dan.carpenter@linaro.org>
Fri, 9 Aug 2024 12:32:30 +0000 (15:32 +0300)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 16 Aug 2024 05:16:15 +0000 (22:16 -0700)
The "initial_nr_hugepages" variable is unsigned long so it takes up to 20
characters to print, plus 1 more character for the NUL terminator.
Unfortunately, this buffer is not quite large enough for the terminator to
fit.  Also use snprintf() for a belt and suspenders approach.

Link: https://lkml.kernel.org/r/87470c06-b45a-4e83-92ff-aac2e7b9c6ba@stanley.mountain
Fixes: fb9293b6b015 ("selftests/mm: compaction_test: fix bogus test success and reduce probability of OOM-killer invocation")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/compaction_test.c

index e140558e6f53f8b11b051f78b2e6fb7820ac3194..2c3a0eb6b22d31d5cdd1251a85ee82c401b95c15 100644 (file)
@@ -89,9 +89,10 @@ int check_compaction(unsigned long mem_free, unsigned long hugepage_size,
        int fd, ret = -1;
        int compaction_index = 0;
        char nr_hugepages[20] = {0};
-       char init_nr_hugepages[20] = {0};
+       char init_nr_hugepages[24] = {0};
 
-       sprintf(init_nr_hugepages, "%lu", initial_nr_hugepages);
+       snprintf(init_nr_hugepages, sizeof(init_nr_hugepages),
+                "%lu", initial_nr_hugepages);
 
        /* We want to test with 80% of available memory. Else, OOM killer comes
           in to play */