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.  Now that we use seprintf(),
the situation isn't different: seprintf() will stop writing *before*
'end' --that is, at most the terminating null byte will be written at
'end-1'--.

Acked-by: Marco Elver <el...@google.com>
Cc: Kees Cook <k...@kernel.org>
Cc: Christopher Bazley <chris.bazley.w...@gmail.com>
Cc: Alexander Potapenko <gli...@google.com>
Cc: Dmitry Vyukov <dvyu...@google.com>
Cc: Alexander Potapenko <gli...@google.com>
Cc: Jann Horn <ja...@google.com>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: Linus Torvalds <torva...@linux-foundation.org>
Cc: Rasmus Villemoes <li...@rasmusvillemoes.dk>
Cc: Marco Elver <el...@google.com>
Cc: Michal Hocko <mho...@suse.com>
Cc: Al Viro <v...@zeniv.linux.org.uk>
Signed-off-by: Alejandro Colomar <a...@kernel.org>
---
 mm/kfence/kfence_test.c | 4 ++--
 mm/kmsan/kmsan_test.c   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/mm/kfence/kfence_test.c b/mm/kfence/kfence_test.c
index bae382eca4ab..c635aa9d478b 100644
--- a/mm/kfence/kfence_test.c
+++ b/mm/kfence/kfence_test.c
@@ -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 = ENDOF(expect[0]);
        switch (r->type) {
        case KFENCE_ERROR_OOB:
                cur = sprintf_end(cur, end, "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 = ENDOF(expect[1]);
 
        switch (r->type) {
        case KFENCE_ERROR_OOB:
diff --git a/mm/kmsan/kmsan_test.c b/mm/kmsan/kmsan_test.c
index e48ca1972ff3..9bda55992e3d 100644
--- a/mm/kmsan/kmsan_test.c
+++ b/mm/kmsan/kmsan_test.c
@@ -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 = ENDOF(expected_header);
 
        cur = sprintf_end(cur, end, "BUG: KMSAN: %s", r->error_type);
 
-- 
2.50.0


Reply via email to