Compare commits
No commits in common. 'c9' and 'i10c-beta' have entirely different histories.
@ -1 +1 @@
|
|||||||
8a0ee8a4693faef7232c7370d5c90a7806413edc SOURCES/fcoe-utils-1.0.34-14ef0d2.tar.gz
|
4310acd864ca374d849f63e6cd982c9a1e6f9484 SOURCES/fcoe-utils-1.0.34-b233050.tar.gz
|
||||||
|
@ -1 +1 @@
|
|||||||
SOURCES/fcoe-utils-1.0.34-14ef0d2.tar.gz
|
SOURCES/fcoe-utils-1.0.34-b233050.tar.gz
|
||||||
|
@ -0,0 +1,95 @@
|
|||||||
|
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 1/1] 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>
|
||||||
|
---
|
||||||
|
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.34.1
|
||||||
|
|
@ -0,0 +1,34 @@
|
|||||||
|
From 78a5e2e17bba531b41101ca036a5bb1a0d5caca5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stephen Gallagher <sgallagh@redhat.com>
|
||||||
|
Date: Tue, 6 Feb 2024 21:15:33 -0500
|
||||||
|
Subject: [PATCH 2/2] Don't attempt to memcpy() zero bytes
|
||||||
|
|
||||||
|
add_rtattr_nest() is called in several places in the code. As part of
|
||||||
|
its operation, it calls add_rtattr(nm type, NULL, 0) which results in
|
||||||
|
NULL and 0 being passed to memcpy(). This fails with -Werror=nonnull
|
||||||
|
on recent GCC.
|
||||||
|
|
||||||
|
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
|
||||||
|
---
|
||||||
|
lib/rtnetlink.c | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/rtnetlink.c b/lib/rtnetlink.c
|
||||||
|
index 3b8413718997568a20752791807b19c1f299955e..faa60d7c12f68af175d223b6c3c3257a982e4f37 100644
|
||||||
|
--- a/lib/rtnetlink.c
|
||||||
|
+++ b/lib/rtnetlink.c
|
||||||
|
@@ -172,7 +172,10 @@ static void add_rtattr(struct nlmsghdr *n, int type, const void *data, int alen)
|
||||||
|
|
||||||
|
rta->rta_type = type;
|
||||||
|
rta->rta_len = len;
|
||||||
|
- memcpy(RTA_DATA(rta), data, alen);
|
||||||
|
+ if (alen > 0)
|
||||||
|
+ {
|
||||||
|
+ memcpy(RTA_DATA(rta), data, alen);
|
||||||
|
+ }
|
||||||
|
n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + RTA_ALIGN(len);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
Loading…
Reference in new issue