!34 fix build error caused by upgrading gcc to 12.3.0

From: @chen-jan 
Reviewed-by: @wu-leilei 
Signed-off-by: @wu-leilei
This commit is contained in:
openeuler-ci-bot 2023-07-14 09:33:23 +00:00 committed by Gitee
commit fb03a9f9f0
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
4 changed files with 212 additions and 2 deletions

View File

@ -0,0 +1,38 @@
From f6401524e1be537a78b24aef686968e2b9af7493 Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@suse.cz>
Date: Thu, 27 Jan 2022 14:36:01 +0100
Subject: [PATCH] Fix GCC 12 warning.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes:
inlined from show_full_lun_info at fcoeadm_display.c:310:2:
/usr/include/bits/stdio2.h:112:10: error: osname may be used uninitialized [-Werror=maybe-uninitialized]
112 | return __printf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __va_arg_pack ());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fcoeadm_display.c: In function show_full_lun_info:
fcoeadm_display.c:249:15: note: osname was declared here
249 | char *osname;
| ^~~~~~
reference: https://github.com/morbidrsa/fcoe-utils/commit/f6401524e1be537a78b24aef686968e2b9af7493
---
fcoeadm_display.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fcoeadm_display.c b/fcoeadm_display.c
index c2ef33b82cf..3a18138eefd 100644
--- a/fcoeadm_display.c
+++ b/fcoeadm_display.c
@@ -246,7 +246,7 @@ static void show_full_lun_info(unsigned int hba, unsigned int port,
char vendor[256];
char model[256];
char rev[256];
- char *osname;
+ char *osname = NULL;
char *capstr;
uint64_t lba = 0;
uint32_t blksize = 0;
--
2.39.1

View File

@ -0,0 +1,69 @@
From 66616e988778c45a316d6b286fda732843f25297 Mon Sep 17 00:00:00 2001
From: Lee Duncan <lduncan@suse.com>
Date: Mon, 22 Mar 2021 18:28:33 -0700
Subject: [PATCH] Fix two gcc-11 compiler warnings.
Gcc-11 is aggressive about gaurding against array copies. So be
clear about what we want to copy, and where we are copying it.
Changes from V1:
* simplified both cases based on review comments
* no need to copy the data twice
reference: https://github.com/morbidrsa/fcoe-utils/commit/66616e988778c45a316d6b286fda732843f25297
---
fcping.c | 8 ++++++--
fipvlan.c | 11 +++++++++--
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/fcping.c b/fcping.c
index bf2bc0f0c78..21830a52524 100644
--- a/fcping.c
+++ b/fcping.c
@@ -570,6 +570,7 @@ fp_ns_get_id(uint32_t op, fc_wwn_t wwn, char *response, size_t *resp_len)
struct sg_io_v4 sg_io;
size_t actual_len;
int cmd, rc = 0;
+ uint32_t *uct = (uint32_t *)&ct.hdr;
memset((char *)&cdb, 0, sizeof(cdb));
memset(&ct, 0, sizeof(ct));
@@ -584,8 +585,11 @@ fp_ns_get_id(uint32_t op, fc_wwn_t wwn, char *response, size_t *resp_len)
cdb.msgcode = FC_BSG_HST_CT;
hton24(cdb.rqst_data.h_ct.port_id, 0xfffffc);
- memcpy(&cdb.rqst_data.h_ct.preamble_word0, &ct.hdr,
- 3 * sizeof(uint32_t));
+
+ /* copy preamble words one at a time, to make compiler happy */
+ cdb.rqst_data.h_ct.preamble_word0 = uct[0];
+ cdb.rqst_data.h_ct.preamble_word1 = uct[1];
+ cdb.rqst_data.h_ct.preamble_word2 = uct[2];
sg_io.guard = 'Q';
sg_io.protocol = BSG_PROTOCOL_SCSI;
diff --git a/fipvlan.c b/fipvlan.c
index c8a07339314..4433c0abf76 100644
--- a/fipvlan.c
+++ b/fipvlan.c
@@ -447,8 +447,15 @@ static void rtnl_recv_newlink(struct nlmsghdr *nh)
iff->iflink = *(int *)RTA_DATA(ifla[IFLA_LINK]);
else
iff->iflink = iff->ifindex;
- memcpy(iff->mac_addr, RTA_DATA(ifla[IFLA_ADDRESS]), ETHER_ADDR_LEN);
- strncpy(iff->ifname, RTA_DATA(ifla[IFLA_IFNAME]), IFNAMSIZ);
+
+ /*
+ * copy MAC address and interface name using intermediate
+ * arrays, so gcc-11 knows we are not overflowing buffers
+ */
+ if (ifla[IFLA_ADDRESS])
+ memcpy(iff->mac_addr, RTA_DATA(ifla[IFLA_ADDRESS]), ETHER_ADDR_LEN);
+ if (ifla[IFLA_IFNAME])
+ memcpy(iff->ifname, RTA_DATA(ifla[IFLA_IFNAME]), IFNAMSIZ);
iff->ifname[IFNAMSIZ - 1] = '\0';
if (ifla[IFLA_LINKINFO]) {
--
2.39.1

View File

@ -0,0 +1,97 @@
From c54147b3ada8c37a536a4df90e8707538021ed20 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Fri, 4 Feb 2022 09:21:47 -0800
Subject: [PATCH] fcoemon: add snprintf string precision modifiers in
fcm_netif_advance
GCC 12 is warning of potential snprintf truncations
fcm_netif.ifname is an IFNAMSIZ array, but formating with %s doesn't
understand that, so add a precision modifier every time we print it to
limit the output. This allows the compiler to verify that the output
buffer is of sufficient length to never truncate.
Signed-off-by: Chris Leech <cleech@redhat.com>
reference: https://github.com/morbidrsa/fcoe-utils/commit/c54147b3ada8c37a536a4df90e8707538021ed20
---
fcoemon.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/fcoemon.c b/fcoemon.c
index 8c08bc5a032..b85f276c7df 100644
--- a/fcoemon.c
+++ b/fcoemon.c
@@ -3135,55 +3135,55 @@ static void fcm_netif_advance(struct fcm_netif *ff)
case FCD_ERROR:
break;
case FCD_GET_DCB_STATE:
- snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%s",
+ snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%.*s",
DCB_CMD, CLIF_RSP_VERSION,
CMD_GET_CONFIG, FEATURE_DCB, 0,
- (u_int) strlen(ff->ifname), ff->ifname);
+ (u_int) strlen(ff->ifname), IFNAMSIZ, ff->ifname);
ff->response_pending = fcm_dcbd_request(buf);
break;
case FCD_SEND_CONF:
snprintf(params, sizeof(params), "%x1%x02",
ff->ff_app_info.enable,
ff->ff_app_info.willing);
- snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%s%s",
+ snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%.*s%s",
DCB_CMD, CLIF_RSP_VERSION,
CMD_SET_CONFIG, FEATURE_APP, APP_FCOE_STYPE,
- (u_int) strlen(ff->ifname), ff->ifname, params);
+ (u_int) strlen(ff->ifname), IFNAMSIZ, ff->ifname, params);
ff->response_pending = fcm_dcbd_request(buf);
break;
case FCD_GET_PFC_CONFIG:
- snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%s%s",
+ snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%.*s%s",
DCB_CMD, CLIF_RSP_VERSION,
CMD_GET_CONFIG, FEATURE_PFC, 0,
- (u_int) strlen(ff->ifname), ff->ifname, "");
+ (u_int) strlen(ff->ifname), IFNAMSIZ, ff->ifname, "");
ff->response_pending = fcm_dcbd_request(buf);
break;
case FCD_GET_APP_CONFIG:
- snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%s%s",
+ snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%.*s%s",
DCB_CMD, CLIF_RSP_VERSION,
CMD_GET_CONFIG, FEATURE_APP, APP_FCOE_STYPE,
- (u_int) strlen(ff->ifname), ff->ifname, "");
+ (u_int) strlen(ff->ifname), IFNAMSIZ, ff->ifname, "");
ff->response_pending = fcm_dcbd_request(buf);
break;
case FCD_GET_PFC_OPER:
- snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%s%s",
+ snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%.*s%s",
DCB_CMD, CLIF_RSP_VERSION,
CMD_GET_OPER, FEATURE_PFC, 0,
- (u_int) strlen(ff->ifname), ff->ifname, "");
+ (u_int) strlen(ff->ifname), IFNAMSIZ, ff->ifname, "");
ff->response_pending = fcm_dcbd_request(buf);
break;
case FCD_GET_APP_OPER:
- snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%s%s",
+ snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%.*s%s",
DCB_CMD, CLIF_RSP_VERSION,
CMD_GET_OPER, FEATURE_APP, APP_FCOE_STYPE,
- (u_int) strlen(ff->ifname), ff->ifname, "");
+ (u_int) strlen(ff->ifname), IFNAMSIZ, ff->ifname, "");
ff->response_pending = fcm_dcbd_request(buf);
break;
case FCD_GET_PEER:
- snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%s%s",
+ snprintf(buf, sizeof(buf), "%c%x%2.2x%2.2x%2.2x%2.2x%.*s%s",
DCB_CMD, CLIF_RSP_VERSION,
CMD_GET_PEER, FEATURE_APP, APP_FCOE_STYPE,
- (u_int) strlen(ff->ifname), ff->ifname, "");
+ (u_int) strlen(ff->ifname), IFNAMSIZ, ff->ifname, "");
ff->response_pending = fcm_dcbd_request(buf);
break;
case FCD_DONE:
--
2.39.1

View File

@ -1,6 +1,6 @@
Name: fcoe-utils
Version: 1.0.33
Release: 3
Release: 4
Summary: Fibre Channel over Ethernet utilities
License: GPLv2
URL: https://github.com/morbidrsa/fcoe-utils
@ -12,6 +12,9 @@ Patch2: backport-02-string_op_truncation_format_trauncation.patch
Patch3: backport-03-use-of-uninitialized-values-detected-during-LTO.patch
#This patch refer to ubuntu's version
Patch4: backport-Fix-build-error-to-change-char-type.patch
Patch5: 0001-Fix-two-gcc-11-compiler-warnings.patch
Patch6: 0001-Fix-GCC-12-warning.patch
Patch7: 0001-fcoemon-add-snprintf-string-precision-modifiers-in-f.patch
BuildRequires: autoconf automake libpciaccess-devel libtool lldpad-devel systemd
Requires: lldpad iproute device-mapper-multipath
@ -67,7 +70,10 @@ done
%{_mandir}/man8/*
%changelog
* Wed Mar 03 2022 xu_ping <xuping33@huawei.com> - 1.0.33-3
* Fri Jul 14 2023 chenchen <chen_aka_jan@163.com> - 1.0.33-4
- fix build error caused by upgrading gcc to 12.3.0
* Thu Mar 03 2022 xu_ping <xuping33@huawei.com> - 1.0.33-3
- Backport upstream patch to avoid non-X86 build break.
* Wed Aug 2021 sunguoshuai <sunguoshuai@huawei.com> - 1.0.33-2