Re: [PATCH net-next v2] bnxt_en: Fix strcpy() warnings in bnxt_ethtool.c

2018-08-10 Thread David Miller
From: Michael Chan 
Date: Fri, 10 Aug 2018 18:24:43 -0400

> From: Vasundhara Volam 
> 
> This patch fixes following smatch warnings:
> 
> drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2826 
> bnxt_fill_coredump_seg_hdr() error: strcpy() '"sEgM"' too large for 
> 'seg_hdr->signature' (5 vs 4)
> drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2858 
> bnxt_fill_coredump_record() error: strcpy() '"cOrE"' too large for 
> 'record->signature' (5 vs 4)
> drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2879 
> bnxt_fill_coredump_record() error: strcpy() 'utsname()->sysname' too large 
> for 'record->os_name' (65 vs 32)
> 
> Fixes: 6c5657d085ae ("bnxt_en: Add support for ethtool get dump.")
> Reported-by: Dan Carpenter 
> Signed-off-by: Vasundhara Volam 
> Signed-off-by: Michael Chan 

That seems to make them all go away, applied, thanks!


[PATCH net-next v2] bnxt_en: Fix strcpy() warnings in bnxt_ethtool.c

2018-08-10 Thread Michael Chan
From: Vasundhara Volam 

This patch fixes following smatch warnings:

drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2826 
bnxt_fill_coredump_seg_hdr() error: strcpy() '"sEgM"' too large for 
'seg_hdr->signature' (5 vs 4)
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2858 
bnxt_fill_coredump_record() error: strcpy() '"cOrE"' too large for 
'record->signature' (5 vs 4)
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c:2879 
bnxt_fill_coredump_record() error: strcpy() 'utsname()->sysname' too large for 
'record->os_name' (65 vs 32)

Fixes: 6c5657d085ae ("bnxt_en: Add support for ethtool get dump.")
Reported-by: Dan Carpenter 
Signed-off-by: Vasundhara Volam 
Signed-off-by: Michael Chan 
---
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
index b6dbc3f..9c929cd 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
@@ -2823,7 +2823,7 @@ bnxt_fill_coredump_seg_hdr(struct bnxt *bp,
   int status, u32 duration, u32 instance)
 {
memset(seg_hdr, 0, sizeof(*seg_hdr));
-   strcpy(seg_hdr->signature, "sEgM");
+   memcpy(seg_hdr->signature, "sEgM", 4);
if (seg_rec) {
seg_hdr->component_id = (__force __le32)seg_rec->component_id;
seg_hdr->segment_id = (__force __le32)seg_rec->segment_id;
@@ -2855,7 +2855,7 @@ bnxt_fill_coredump_record(struct bnxt *bp, struct 
bnxt_coredump_record *record,
 
time64_to_tm(start, 0, );
memset(record, 0, sizeof(*record));
-   strcpy(record->signature, "cOrE");
+   memcpy(record->signature, "cOrE", 4);
record->flags = 0;
record->low_version = 0;
record->high_version = 1;
@@ -2876,7 +2876,7 @@ bnxt_fill_coredump_record(struct bnxt *bp, struct 
bnxt_coredump_record *record,
record->os_ver_major = cpu_to_le32(os_ver_major);
record->os_ver_minor = cpu_to_le32(os_ver_minor);
 
-   strcpy(record->os_name, utsname()->sysname);
+   strlcpy(record->os_name, utsname()->sysname, 32);
time64_to_tm(end, 0, );
record->end_year = cpu_to_le16(tm.tm_year + 1900);
record->end_month = cpu_to_le16(tm.tm_mon + 1);
-- 
2.5.1