From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 525D32DF9A for ; Tue, 7 Nov 2023 12:11:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="CUOABIcl" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0EFD4C433CB; Tue, 7 Nov 2023 12:11:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1699359069; bh=6mRMfMeLwe1WWoTaNNHlteuyJSa3AdSqNydk5zoenT8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CUOABIclD/AG7/6atHcHuDt6NJSASt24OcKt3DCdTaAeNfmR+wS5F+YiUqZNLMqCZ ohXNuT/bKCfyeOcYyB2PeEurN6XpajX0OekoL6sMJvipOFDS2i+g06PzmBnyisa1H6 t5DNHvv8qrFkZtXRtPr2pFQKROJI2yfLA1j6akDIrx4oCaYsKcjldBzXVzRjB1MJPQ QDiar3zbW4UxyEYXuJsDuIP/frvqG1b0RfrHHhKeGhB1vrVFp24aJOX1MBxD6Y96Hp oiKff45OQ//UYf+aOIqeh2InLxvnb2F6U9ihfuZtjcvDIO/l62v170MADVqIUvw+fL 4Hge2hXQC0Jxg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Dmitry Antipov , Johannes Berg , Sasha Levin , kvalo@kernel.org, nathan@kernel.org, ndesaulniers@google.com, linux-wireless@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH AUTOSEL 6.1 02/18] wifi: mac80211_hwsim: fix clang-specific fortify warning Date: Tue, 7 Nov 2023 07:10:32 -0500 Message-ID: <20231107121104.3757943-2-sashal@kernel.org> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231107121104.3757943-1-sashal@kernel.org> References: <20231107121104.3757943-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.1.61 Content-Transfer-Encoding: 8bit From: Dmitry Antipov [ Upstream commit cbaccdc42483c65016f1bae89128c08dc17cfb2a ] When compiling with clang 16.0.6 and CONFIG_FORTIFY_SOURCE=y, I've noticed the following (somewhat confusing due to absence of an actual source code location): In file included from drivers/net/wireless/virtual/mac80211_hwsim.c:18: In file included from ./include/linux/slab.h:16: In file included from ./include/linux/gfp.h:7: In file included from ./include/linux/mmzone.h:8: In file included from ./include/linux/spinlock.h:56: In file included from ./include/linux/preempt.h:79: In file included from ./arch/x86/include/asm/preempt.h:9: In file included from ./include/linux/thread_info.h:60: In file included from ./arch/x86/include/asm/thread_info.h:53: In file included from ./arch/x86/include/asm/cpufeature.h:5: In file included from ./arch/x86/include/asm/processor.h:23: In file included from ./arch/x86/include/asm/msr.h:11: In file included from ./arch/x86/include/asm/cpumask.h:5: In file included from ./include/linux/cpumask.h:12: In file included from ./include/linux/bitmap.h:11: In file included from ./include/linux/string.h:254: ./include/linux/fortify-string.h:592:4: warning: call to '__read_overflow2_field' declared with 'warning' attribute: detected read beyond size of field (2nd parameter); maybe use struct_group()? [-Wattribute-warning] __read_overflow2_field(q_size_field, size); The compiler actually complains on 'mac80211_hwsim_get_et_strings()' where fortification logic inteprets call to 'memcpy()' as an attempt to copy the whole 'mac80211_hwsim_gstrings_stats' array from its first member and so issues an overread warning. This warning may be silenced by passing an address of the whole array and not the first member to 'memcpy()'. Signed-off-by: Dmitry Antipov Link: https://lore.kernel.org/r/20230829094140.234636-1-dmantipov@yandex.ru Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- drivers/net/wireless/mac80211_hwsim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index db70cef854bc4..abcd165a62cfe 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -3021,7 +3021,7 @@ static void mac80211_hwsim_get_et_strings(struct ieee80211_hw *hw, u32 sset, u8 *data) { if (sset == ETH_SS_STATS) - memcpy(data, *mac80211_hwsim_gstrings_stats, + memcpy(data, mac80211_hwsim_gstrings_stats, sizeof(mac80211_hwsim_gstrings_stats)); } -- 2.42.0