| From 86649afb39943c71c91848866cc5174d9d3036b7 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 9 Dec 2025 17:36:59 +0300 |
| Subject: EDAC/i5000: Fix snprintf() size calculation in calculate_dimm_size() |
| |
| From: Dan Carpenter <dan.carpenter@linaro.org> |
| |
| [ Upstream commit 7b5c7e83ac405ff9ecbdd92b37a477f4288f8814 ] |
| |
| 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 |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/edac/i5000_edac.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/drivers/edac/i5000_edac.c b/drivers/edac/i5000_edac.c |
| index 4b5a71f8739d9..8c6a291e01f6a 100644 |
| --- a/drivers/edac/i5000_edac.c |
| +++ b/drivers/edac/i5000_edac.c |
| @@ -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; |
| -- |
| 2.51.0 |
| |