]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
EDAC/i5400: Fix snprintf() limit calculation in calculate_dimm_size()
authorDan Carpenter <dan.carpenter@linaro.org>
Tue, 9 Dec 2025 14:37:04 +0000 (17:37 +0300)
committerTony Luck <tony.luck@intel.com>
Wed, 17 Dec 2025 18:00:20 +0000 (10:00 -0800)
The snprintf() can't really overflow because we're writing a max of 42
bytes to a PAGE_SIZE buffer.  But my static checker complains because
the limit calculation doesn't take the first 11 space characters that
we wrote into the buffer into consideration.  Fix this for the sake of
correctness even though it doesn't affect runtime.

Also delete an earlier "space -= n;" which was not used.

Fixes: 68d086f89b80 ("i5400_edac: improve debug messages to better represent the filled memory")
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/ccd06b91748e7ed8e33eeb2ff1e7b98700879304.1765290801.git.dan.carpenter@linaro.org
drivers/edac/i5400_edac.c

index b5cf25905b059d4273aae0795feda886a45d3cf8..fb49a1d1df11207b96cea8a168669e167e36bd45 100644 (file)
@@ -1026,13 +1026,13 @@ static void calculate_dimm_size(struct i5400_pvt *pvt)
                space -= n;
        }
 
-       space -= n;
        edac_dbg(2, "%s\n", mem_buffer);
        p = mem_buffer;
        space = PAGE_SIZE;
 
        n = snprintf(p, space, "           ");
        p += n;
+       space -= n;
        for (branch = 0; branch < MAX_BRANCHES; branch++) {
                n = snprintf(p, space, "       branch %d       | ", branch);
                p += n;