Received: by 2002:a05:7412:e794:b0:fa:551:50a7 with SMTP id o20csp2046941rdd; Thu, 11 Jan 2024 18:59:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IE8qjCvIMJqsnMEmpFPL5loCgwkF+oKEsvasTMUXVvJ1zEFZIgup+e2+K7w59dTzWYXszSz X-Received: by 2002:a17:906:d1c9:b0:a23:62e9:bfa7 with SMTP id bs9-20020a170906d1c900b00a2362e9bfa7mr279657ejb.46.1705028397459; Thu, 11 Jan 2024 18:59:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705028397; cv=none; d=google.com; s=arc-20160816; b=o5n9fTlqSGvMpAku5aCMQWrYJfNiejz85SSJtdBHri/YX3qFqB1TUwfvDpzzyYrCwj baF902Kj50PYvZvA0COHjxHYXV8MEwiCuqrQ/fZnStIBuWtBs4XBRRVLgQzqHizM1XHH Z6HCcs5xrLijAZ+EJC+GRsSI++ZveQwTHbIYMLRIy8Q4TsADlvKLijncs54oQKAtBra7 Ca9tvgT7dYFtW5xZvSDnjOZPLJXzmMMRVWb8VePCsIf4O3kDmvY+OUWxk78bK+segIDE ZefBvQnHI5+4vIn/HxX/awPg72tuslaMprs2fLp/oDlJ32Wm78W62RGiWh62ozewZxRd hrvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from; bh=mHxsD3vGrpoQGl3vcSwuxi2WNi7Ux/WzEviD/iSTRbQ=; fh=BGRxrkfGVuH1vwaTE7h7o0qAEHz+H7n7hzW6m74zBa0=; b=uSTxd5V2CkN9T0K6xkbq5IYXIjP9LwS5xQg4Eu9HWbCPZ1hMRxW9zMs71DfCxTRkyn d3d0bShZmm5M6jqHxYBsOBGnEnUXUOgfUJRxOpZPvZmO5yupm0N4w5tbUdfRhkhzq/PT ze6QohzUoG8rb4iyjwxjwNHMkTJlLIr4RUxjKAb4TyN7iqAfRWrmRTKDZ1kQJ7CRmwue aJB4d9oWRv5sg0aiyjaAVPL6glL8n4tagkSluL7g84VGHvW5SYrExzqM6kQZ+8QgLo+k +F/Ib2eQ0RGs2I+XAKAG15XxgJEYNeeQzvP/IfiPWoCmklMuIapDTqWLyRPXIqlZtGji jK6g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-24254-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-24254-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id dl20-20020a170907945400b00a2bda531b4fsi1041092ejc.336.2024.01.11.18.59.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jan 2024 18:59:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-24254-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-24254-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-24254-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 322581F26A9E for ; Fri, 12 Jan 2024 02:59:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BB23F17E8; Fri, 12 Jan 2024 02:59:47 +0000 (UTC) Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 930BF10783; Fri, 12 Jan 2024 02:59:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: ae53ff116344415d96418585a4d93d84-20240112 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.35,REQID:6a2b0c87-dd81-4c55-9f0b-66abea040b8a,IP:10, URL:0,TC:0,Content:-25,EDM:25,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,A CTION:release,TS:-5 X-CID-INFO: VERSION:1.1.35,REQID:6a2b0c87-dd81-4c55-9f0b-66abea040b8a,IP:10,UR L:0,TC:0,Content:-25,EDM:25,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACT ION:release,TS:-5 X-CID-META: VersionHash:5d391d7,CLOUDID:676b437f-4f93-4875-95e7-8c66ea833d57,B ulkID:2401121059378NCKGCC4,BulkQuantity:0,Recheck:0,SF:66|38|24|17|19|44|1 02,TC:nil,Content:0,EDM:5,IP:-2,URL:1,File:nil,Bulk:nil,QS:nil,BEC:nil,COL :0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_FAS,TF_CID_SPAM_FSD,TF_CID_SPAM_FSI,TF_CID_SPAM_ULS, TF_CID_SPAM_SNR X-UUID: ae53ff116344415d96418585a4d93d84-20240112 X-User: chentao@kylinos.cn Received: from kernel.. [(116.128.244.171)] by mailgw (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 544651348; Fri, 12 Jan 2024 10:59:34 +0800 From: Kunwu Chan To: jesse.brandeburg@intel.com, anthony.l.nguyen@intel.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: jacob.e.keller@intel.com, przemyslaw.kitszel@intel.com, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Kunwu Chan , Kunwu Chan Subject: [PATCH v2] igb: Fix string truncation warnings in igb_set_fw_version Date: Fri, 12 Jan 2024 10:58:53 +0800 Message-Id: <20240112025853.123048-1-chentao@kylinos.cn> X-Mailer: git-send-email 2.39.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 'commit 1978d3ead82c ("intel: fix string truncation warnings")' fix '-Wformat-truncation=' warnings in igb_main.c by using kasprintf. kasprintf() returns a pointer to dynamically allocated memory which can be NULL upon failure. Fix this warning by using a larger space for adapter->fw_version, and then fall back and continue to use snprintf. Fixes: 1978d3ead82c ("intel: fix string truncation warnings") Signed-off-by: Kunwu Chan Cc: Kunwu Chan Suggested-by: Jakub Kicinski --- v2: Fall back to use snprintf and a larger space,as suggested by https://lore.kernel.org/all/20231212132637.1b0fb8aa@kernel.org/ --- drivers/net/ethernet/intel/igb/igb.h | 2 +- drivers/net/ethernet/intel/igb/igb_main.c | 35 ++++++++++++----------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h index a2b759531cb7..3c2dc7bdebb5 100644 --- a/drivers/net/ethernet/intel/igb/igb.h +++ b/drivers/net/ethernet/intel/igb/igb.h @@ -637,7 +637,7 @@ struct igb_adapter { struct timespec64 period; } perout[IGB_N_PEROUT]; - char fw_version[32]; + char fw_version[48]; #ifdef CONFIG_IGB_HWMON struct hwmon_buff *igb_hwmon_buff; bool ets; diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index b2295caa2f0a..ce762d77d2c1 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -3069,7 +3069,6 @@ void igb_set_fw_version(struct igb_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; struct e1000_fw_version fw; - char *lbuf; igb_get_fw_version(hw, &fw); @@ -3077,34 +3076,36 @@ void igb_set_fw_version(struct igb_adapter *adapter) case e1000_i210: case e1000_i211: if (!(igb_get_flash_presence_i210(hw))) { - lbuf = kasprintf(GFP_KERNEL, "%2d.%2d-%d", - fw.invm_major, fw.invm_minor, - fw.invm_img_type); + snprintf(adapter->fw_version, + sizeof(adapter->fw_version), + "%2d.%2d-%d", + fw.invm_major, fw.invm_minor, + fw.invm_img_type); break; } fallthrough; default: /* if option rom is valid, display its version too */ if (fw.or_valid) { - lbuf = kasprintf(GFP_KERNEL, "%d.%d, 0x%08x, %d.%d.%d", - fw.eep_major, fw.eep_minor, - fw.etrack_id, fw.or_major, fw.or_build, - fw.or_patch); + snprintf(adapter->fw_version, + sizeof(adapter->fw_version), + "%d.%d, 0x%08x, %d.%d.%d", + fw.eep_major, fw.eep_minor, fw.etrack_id, + fw.or_major, fw.or_build, fw.or_patch); /* no option rom */ } else if (fw.etrack_id != 0X0000) { - lbuf = kasprintf(GFP_KERNEL, "%d.%d, 0x%08x", - fw.eep_major, fw.eep_minor, - fw.etrack_id); + snprintf(adapter->fw_version, + sizeof(adapter->fw_version), + "%d.%d, 0x%08x", + fw.eep_major, fw.eep_minor, fw.etrack_id); } else { - lbuf = kasprintf(GFP_KERNEL, "%d.%d.%d", fw.eep_major, - fw.eep_minor, fw.eep_build); + snprintf(adapter->fw_version, + sizeof(adapter->fw_version), + "%d.%d.%d", + fw.eep_major, fw.eep_minor, fw.eep_build); } break; } - - /* the truncate happens here if it doesn't fit */ - strscpy(adapter->fw_version, lbuf, sizeof(adapter->fw_version)); - kfree(lbuf); } /** -- 2.39.2