2021-09-20 14:46:02

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] scsi: lpfc: Fix gcc -Wstringop-overread warning, again

From: Arnd Bergmann <[email protected]>

I fixed a stringop-overread warning earlier this year, now a
second copy of the original code was added and the warning came
back:

drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_cmf_info_show':
drivers/scsi/lpfc/lpfc_attr.c:289:25: error: 'strnlen' specified bound 4095 exceeds source size 24 [-Werror=stringop-overread]
289 | strnlen(LPFC_INFO_MORE_STR, PAGE_SIZE - 1),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fix it the same way as the other copy.

Fixes: ada48ba70f6b ("scsi: lpfc: Fix gcc -Wstringop-overread warning")
Fixes: 74a7baa2a3ee ("scsi: lpfc: Add cmf_info sysfs entry")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/scsi/lpfc/lpfc_attr.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index b35bf70a8c0d..ca0433e28ac3 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -285,11 +285,8 @@ lpfc_cmf_info_show(struct device *dev, struct device_attribute *attr,
"6312 Catching potential buffer "
"overflow > PAGE_SIZE = %lu bytes\n",
PAGE_SIZE);
- strscpy(buf + PAGE_SIZE - 1 -
- strnlen(LPFC_INFO_MORE_STR, PAGE_SIZE - 1),
- LPFC_INFO_MORE_STR,
- strnlen(LPFC_INFO_MORE_STR, PAGE_SIZE - 1)
- + 1);
+ strscpy(buf + PAGE_SIZE - 1 - sizeof(LPFC_INFO_MORE_STR),
+ LPFC_INFO_MORE_STR, sizeof(LPFC_INFO_MORE_STR) + 1);
}
return len;
}
--
2.29.2


2021-09-21 04:07:46

by James Smart

[permalink] [raw]
Subject: Re: [PATCH] scsi: lpfc: Fix gcc -Wstringop-overread warning, again

On 9/20/2021 2:56 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> I fixed a stringop-overread warning earlier this year, now a
> second copy of the original code was added and the warning came
> back:
>
> drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_cmf_info_show':
> drivers/scsi/lpfc/lpfc_attr.c:289:25: error: 'strnlen' specified bound 4095 exceeds source size 24 [-Werror=stringop-overread]
> 289 | strnlen(LPFC_INFO_MORE_STR, PAGE_SIZE - 1),
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Fix it the same way as the other copy.
>
> Fixes: ada48ba70f6b ("scsi: lpfc: Fix gcc -Wstringop-overread warning")
> Fixes: 74a7baa2a3ee ("scsi: lpfc: Add cmf_info sysfs entry")
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> drivers/scsi/lpfc/lpfc_attr.c | 7 ++-----


Thank You Arnd. Looks good.

Reviewed-by: James Smart <[email protected]>

-- james

2021-09-22 04:48:54

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH] scsi: lpfc: Fix gcc -Wstringop-overread warning, again

On Mon, 20 Sep 2021 11:56:22 +0200, Arnd Bergmann wrote:

> From: Arnd Bergmann <[email protected]>
>
> I fixed a stringop-overread warning earlier this year, now a
> second copy of the original code was added and the warning came
> back:
>
> drivers/scsi/lpfc/lpfc_attr.c: In function 'lpfc_cmf_info_show':
> drivers/scsi/lpfc/lpfc_attr.c:289:25: error: 'strnlen' specified bound 4095 exceeds source size 24 [-Werror=stringop-overread]
> 289 | strnlen(LPFC_INFO_MORE_STR, PAGE_SIZE - 1),
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> [...]

Applied to 5.15/scsi-fixes, thanks!

[1/1] scsi: lpfc: Fix gcc -Wstringop-overread warning, again
https://git.kernel.org/mkp/scsi/c/a38923f2d088

--
Martin K. Petersen Oracle Linux Engineering