96 lines
3.7 KiB
Diff
96 lines
3.7 KiB
Diff
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
|
|
|