]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
EDAC/i5000: Fix snprintf() size calculation in calculate_dimm_size()
authorDan Carpenter <dan.carpenter@linaro.org>
Tue, 9 Dec 2025 14:36:59 +0000 (17:36 +0300)
committerTony Luck <tony.luck@intel.com>
Wed, 17 Dec 2025 17:59:17 +0000 (09:59 -0800)
The snprintf() can't really overflow because we're writing a max of 42
bytes to a PAGE_SIZE buffer.  But the limit calculation doesn't take
the first 11 bytes that we wrote into consideration so the limit is
not correct.  Just fix it for correctness even though it doesn't
affect runtime.

Fixes: 64e1fdaf55d6 ("i5000_edac: Fix the logic that retrieves memory information")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Reviewed-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Link: https://patch.msgid.link/07cd652c51e77aad5a8350e1a7cd9407e5bbe373.1765290801.git.dan.carpenter@linaro.org
drivers/edac/i5000_edac.c

index 4a1bebc1ff14d4584b02fe557b6c218214085f09..471b8540d18b0fc78655724e613cc70160eb2674 100644 (file)
@@ -1111,6 +1111,7 @@ static void calculate_dimm_size(struct i5000_pvt *pvt)
 
        n = snprintf(p, space, "           ");
        p += n;
+       space -= n;
        for (branch = 0; branch < MAX_BRANCHES; branch++) {
                n = snprintf(p, space, "       branch %d       | ", branch);
                p += n;