]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm: fix benign off-by-one bugs
authorAlejandro Colomar <alx@kernel.org>
Thu, 11 Dec 2025 10:43:54 +0000 (11:43 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 21 Jan 2026 03:44:19 +0000 (19:44 -0800)
We were wasting a byte due to an off-by-one bug.  s[c]nprintf() doesn't
write more than $2 bytes including the null byte, so trying to pass
'size-1' there is wasting one byte.

Link: https://lkml.kernel.org/r/9c38dd009c17b0219889c7089d9bdde5aaf28a8e.1765449750.git.alx@kernel.org
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Acked-by: Marco Elver <elver@google.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Christopher Bazley <chris.bazley.wg14@gmail.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Jann Horn <jannh@google.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Maciej W. Rozycki <macro@orcam.me.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/kfence/kfence_test.c
mm/kmsan/kmsan_test.c

index 00034e37bc9ff43900ff964eb8a7eaeeb551b7a7..5725a367246d9b52eb056a6de8de949ff7801f95 100644 (file)
@@ -110,7 +110,7 @@ static bool report_matches(const struct expect_report *r)
 
        /* Title */
        cur = expect[0];
-       end = &expect[0][sizeof(expect[0]) - 1];
+       end = ARRAY_END(expect[0]);
        switch (r->type) {
        case KFENCE_ERROR_OOB:
                cur += scnprintf(cur, end - cur, "BUG: KFENCE: out-of-bounds %s",
@@ -140,7 +140,7 @@ static bool report_matches(const struct expect_report *r)
 
        /* Access information */
        cur = expect[1];
-       end = &expect[1][sizeof(expect[1]) - 1];
+       end = ARRAY_END(expect[1]);
 
        switch (r->type) {
        case KFENCE_ERROR_OOB:
index 902ec48b1e3e6a44c0529c5bb020929ecb96fedd..b5ad5dfb2c00744920a51a82268a566a1857eb75 100644 (file)
@@ -105,7 +105,7 @@ static bool report_matches(const struct expect_report *r)
 
        /* Title */
        cur = expected_header;
-       end = &expected_header[sizeof(expected_header) - 1];
+       end = ARRAY_END(expected_header);
 
        cur += scnprintf(cur, end - cur, "BUG: KMSAN: %s", r->error_type);