Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp2332866rwd; Fri, 16 Jun 2023 02:29:03 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4aoJJPr2DTLWAEZUzOLJShlOIF/QsSKkZhkifJJpV7uzCLfYHvGhuEX2Z95Wq1ZOu7UxNB X-Received: by 2002:a17:902:db0c:b0:1b3:c48d:1c9 with SMTP id m12-20020a170902db0c00b001b3c48d01c9mr1227711plx.66.1686907742684; Fri, 16 Jun 2023 02:29:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686907742; cv=none; d=google.com; s=arc-20160816; b=Nngj9+Pza9M6nXSEP4UqeEl5rfnuSrxrNWxm3NTjBCeNtWChSNdwi8HuBoIOfPkbN3 YqsByebH5Fo5iW4J/erW2AvQ8uxFa6kf2y8HLu90yo4PedNNAV23Lji8ccq+rNSvo3HS 1e0b8VtW1hwWfKvHVIiWT67AxomciyAJxLxxacR0NaWat5vicM33Oe6+Px40t8pVj/QJ Mw4XsZMiLUKxoAjU2qT8xTJCIJhyiQV2xfGb3KpYK41g/xsJcUs7YASP2TpbpF5COcfz URXSfK+xUTI7YEUG1gQUU2xQ4/OCk6/rsR0Ghix/vVKTndAA9+eXqEwAmbfvWc8pSZUa Pl+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=FPMkgO4hO0NVtEUHtZHePUgFYoT92Vp0NfB2FluQ/P4=; b=yfxvldhN/dpdDjUVAGZgikNgHHGVdP9hryUrJEQMcZyTOTBR+jn/HaYbpXlQyN1IJY C5rWGEZwhnJ9eO6iJ2NRC5mTsfU/TLJT3mrsoF2hveNWgHzNzsMkCQhLgSq7HYmIFMgF EaEmk8XEaue5dKKe8jhNlSktdld/sHMFXvBMntoPLf5UbGxkXaBXBotCoPOCOftKDl03 hBwelHlU0iAWgYPnMGBLAn/eK96nwpCP+LYz/MANTibBmfcOZJxkVST3UjCVbbqf+g1w ZF8egswmxyNMFA65SV4KaWSGdzBkas2O8SXwMmy1PTf7nMVNxOkh5bQglx8DMZjRuwG4 Bv7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=OQgajVQV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i3-20020a17090332c300b001b3da77c1f1si8900171plr.194.2023.06.16.02.28.48; Fri, 16 Jun 2023 02:29:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=OQgajVQV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245744AbjFPJKn (ORCPT + 99 others); Fri, 16 Jun 2023 05:10:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343764AbjFPJJk (ORCPT ); Fri, 16 Jun 2023 05:09:40 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1952149D2; Fri, 16 Jun 2023 02:07:57 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 967E763251; Fri, 16 Jun 2023 09:07:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4C8C3C433CD; Fri, 16 Jun 2023 09:07:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1686906475; bh=4phIGceOvtI2yxKDIT1C76n8i2VAK0TTfcMygNtE+64=; h=From:To:Cc:Subject:Date:From; b=OQgajVQV62OKGC/9ew5Mw9zNBUvWBMyfnUuOHneuy+cdi3NMZdc61WUdw4PWMpnv1 PDZble9eXjKhIG4raJnoCLlv0YKxvlCKQyu6URXNE0LezsYrXYKfwcgsnrwK4SOkDK o+/YEqHfDEHlor+xmDv2jxNqnPK7xaeMWeRWGqsVlKdgEQPPwRxr++OuC8eD0JmUNG JWKro2+aG33LZFyN/Pq7qDPWzy/L1+em8T4mOMikd1bNlSOIRypD6O9eMo8+MVW9je mnV5SVIMCisxridyPv6HAAI5uF1a9xJXk8/WQg5/0bMLeTQpCa+/otjDjLfORtakFY XrxgVmIS9ZD5A== From: Arnd Bergmann To: Namjae Jeon , Steve French Cc: Arnd Bergmann , Sergey Senozhatsky , Tom Talpey , Nathan Chancellor , Nick Desaulniers , Tom Rix , Christian Brauner , Dave Chinner , Kees Cook , =?UTF-8?q?Micka=C3=ABl=20Sala=C3=BCn?= , Ronnie Sahlberg , Hyunchul Lee , linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev Subject: [PATCH] smb: avoid field overflow warning Date: Fri, 16 Jun 2023 11:07:28 +0200 Message-Id: <20230616090749.2646749-1-arnd@kernel.org> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Arnd Bergmann clang warns about a possible field overflow in a memcpy: In file included from fs/smb/server/smb_common.c:7: include/linux/fortify-string.h:583:4: error: call to '__write_overflow_field' declared with 'warning' attribute: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror,-Wattribute-warning] __write_overflow_field(p_size_field, size); It appears to interpret the "&out[baselen + 4]" as referring to a single byte of the character array, while the equivalen "out + baselen + 4" is seen as an offset into the array. I don't see that kind of warning elsewhere, so just go with the simple rework. Fixes: e2f34481b24db ("cifsd: add server-side procedures for SMB3") Signed-off-by: Arnd Bergmann --- fs/smb/server/smb_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/smb/server/smb_common.c b/fs/smb/server/smb_common.c index a7e81067bc991..e3273fa640b07 100644 --- a/fs/smb/server/smb_common.c +++ b/fs/smb/server/smb_common.c @@ -536,7 +536,7 @@ int ksmbd_extract_shortname(struct ksmbd_conn *conn, const char *longname, out[baselen + 3] = PERIOD; if (dot_present) - memcpy(&out[baselen + 4], extension, 4); + memcpy(out + baselen + 4, extension, 1); else out[baselen + 4] = '\0'; smbConvertToUTF16((__le16 *)shortname, out, PATH_MAX, -- 2.39.2