diff mbox series

scsi: lpfc: Fix gcc -Wstringop-overread warning, again

Message ID 20210920095628.1191676-1-arnd@kernel.org (mailing list archive)
State Accepted
Headers show
Series scsi: lpfc: Fix gcc -Wstringop-overread warning, again | expand

Commit Message

Arnd Bergmann Sept. 20, 2021, 9:56 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

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 <arnd@arndb.de>
---
 drivers/scsi/lpfc/lpfc_attr.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

Comments

James Smart Sept. 20, 2021, 6:49 p.m. UTC | #1
On 9/20/2021 2:56 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> 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 <arnd@arndb.de>
> ---
>   drivers/scsi/lpfc/lpfc_attr.c | 7 ++-----


Thank You Arnd. Looks good.

Reviewed-by: James Smart <jsmart2021@gmail.com>

-- james
Martin K. Petersen Sept. 22, 2021, 4:44 a.m. UTC | #2
On Mon, 20 Sep 2021 11:56:22 +0200, Arnd Bergmann wrote:

> From: Arnd Bergmann <arnd@arndb.de>
> 
> 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
diff mbox series

Patch

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;
 }