]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
lib: string_helpers: fix potential snprintf() output truncation
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 21 Oct 2024 09:14:17 +0000 (11:14 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 1 Nov 2024 04:28:04 +0000 (21:28 -0700)
The output of ".%03u" with the unsigned int in range [0, 4294966295] may
get truncated if the target buffer is not 12 bytes.

Link: https://lkml.kernel.org/r/20241021091417.37796-1-brgl@bgdev.pl
Fixes: 3c9f3681d0b4 ("[SCSI] lib: add generic helper to print sizes rounded to the correct SI range")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Kees Cook <kees@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/string_helpers.c

index 4f887aa62fa0cdf0cfe54647def5f84dd1a630ee..91fa37b5c510a7f2a53bd0fe8518d672790c1ff9 100644 (file)
@@ -57,7 +57,7 @@ int string_get_size(u64 size, u64 blk_size, const enum string_size_units units,
        static const unsigned int rounding[] = { 500, 50, 5 };
        int i = 0, j;
        u32 remainder = 0, sf_cap;
-       char tmp[8];
+       char tmp[12];
        const char *unit;
 
        tmp[0] = '\0';