bnxt_en: Fix strcpy() warnings in bnxt_ethtool.c

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: 6c5657d085 ("bnxt_en: Add support for ethtool get dump.")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Vasundhara Volam 2018-08-10 18:24:43 -04:00 committed by David S. Miller
parent 0520344cdb
commit 8605212a7c
1 changed files with 3 additions and 3 deletions

View File

@ -2823,7 +2823,7 @@ bnxt_fill_coredump_seg_hdr(struct bnxt *bp,
int status, u32 duration, u32 instance) int status, u32 duration, u32 instance)
{ {
memset(seg_hdr, 0, sizeof(*seg_hdr)); memset(seg_hdr, 0, sizeof(*seg_hdr));
strcpy(seg_hdr->signature, "sEgM"); memcpy(seg_hdr->signature, "sEgM", 4);
if (seg_rec) { if (seg_rec) {
seg_hdr->component_id = (__force __le32)seg_rec->component_id; seg_hdr->component_id = (__force __le32)seg_rec->component_id;
seg_hdr->segment_id = (__force __le32)seg_rec->segment_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, &tm); time64_to_tm(start, 0, &tm);
memset(record, 0, sizeof(*record)); memset(record, 0, sizeof(*record));
strcpy(record->signature, "cOrE"); memcpy(record->signature, "cOrE", 4);
record->flags = 0; record->flags = 0;
record->low_version = 0; record->low_version = 0;
record->high_version = 1; 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_major = cpu_to_le32(os_ver_major);
record->os_ver_minor = cpu_to_le32(os_ver_minor); 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, &tm); time64_to_tm(end, 0, &tm);
record->end_year = cpu_to_le16(tm.tm_year + 1900); record->end_year = cpu_to_le16(tm.tm_year + 1900);
record->end_month = cpu_to_le16(tm.tm_mon + 1); record->end_month = cpu_to_le16(tm.tm_mon + 1);