Message ID | 20230915200400.never.585-kees@kernel.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp1291603vqi; Fri, 15 Sep 2023 13:07:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHdxIz6eUcgvskOrE+OEorGfNs7Jy2IVxzgITJXLqvDgd06cl7bEGIUhqpnEihj5i58GCDc X-Received: by 2002:a05:6a00:134e:b0:682:537f:2cb8 with SMTP id k14-20020a056a00134e00b00682537f2cb8mr3013346pfu.26.1694808437198; Fri, 15 Sep 2023 13:07:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694808437; cv=none; d=google.com; s=arc-20160816; b=sGuWwajvx8WCJ+nWU9fnM//MDb+o0MMhV1Md71baYpCQP8Mvmbqnjmosf2LeOH/z1Q EPQZmpRA62aOiBcqkd71gqQKfAzMuT2qPFA6YrOIkcq6t5Buet9llLQK5KvHE0sxZUu0 ST+naVFWQfI6E8sWsoCteCpZKqIDvtVwg5GI21AjFaFL+BaQ9UzewG/pJzvZcFCRf3pI 7GHoQ0U4dvLOJ8AoSA1+yUNRUDysJrr+cbivWtzJoczMn6smExp9tSTdGlat6u1/BKpd g2AklBynNLE3YRRUvj/l0du81TYWAHGIiqYpTGM01UbaYD/dGZpsNvwscpUCtF40ITb0 /WPA== 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=WBuZz+BdckpJHOm1ZISAhTef4sCi4HSxGN+vf0MxAr8=; fh=8usbhTyLEs+UqinFzzonmw/C95jphrrnd4BsKDJ2VSc=; b=cbbfrwSXLXUmN/6eEHKQ8GY5q69Z6YO3PMuskWVXA0eLQ9Z88sHbSNS9je5xb/za50 oeReWFhUuQ6OVyvW1eHmH4reMJsNRxnmjvxUU9KjY5r29osl6eMc5CTw0IIdH3MF73jT xJzhsK4Ubd/eVXK+g20E3W268jU1MqZehV3TYGAXr2tHtRIxu2qy2hNAh6peJWD4ptvO As5F7POYGPtAJRRkd6wArNhp7b2CXk33ERrbvdC4vYT3+C5IpHI9wdzRk6uLwqXZcCAG w1gZw4EjhxVF26DyzznZWjtkLrTOv+YHZAVNdnMkquglGyMyMCDw/lqvo+Arg9OW/AgH Wvpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=lMqXZr9z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id t8-20020a056a00138800b0068fbace96cesi3863798pfg.77.2023.09.15.13.07.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 13:07:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=lMqXZr9z; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 72340825A872; Fri, 15 Sep 2023 13:05:00 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237136AbjIOUEd (ORCPT <rfc822;realc9580@gmail.com> + 29 others); Fri, 15 Sep 2023 16:04:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37754 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237097AbjIOUEH (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 15 Sep 2023 16:04:07 -0400 Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3EF82211E for <linux-kernel@vger.kernel.org>; Fri, 15 Sep 2023 13:04:03 -0700 (PDT) Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-68fc9a4ebe9so2310158b3a.2 for <linux-kernel@vger.kernel.org>; Fri, 15 Sep 2023 13:04:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1694808243; x=1695413043; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=WBuZz+BdckpJHOm1ZISAhTef4sCi4HSxGN+vf0MxAr8=; b=lMqXZr9zTLxsy5KQL5G498j4MM23oTudzH5Bwlq5wwkOAbVDRL/RGT4JJxIYIko/gG 7drOLMhs7FKyly+iCDy92tYvrgHYidKzvNeskOffC/7GJDLaL5ok2aGnYzJmd6qViPXz 6S3oIX4Tf1Ht2ZjC00eRsxvIofGY5lv3KlJ1M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694808243; x=1695413043; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WBuZz+BdckpJHOm1ZISAhTef4sCi4HSxGN+vf0MxAr8=; b=cna9tzlxHTt0H/2zEvCPDF/r0JYQZT+hqEaBHAmVN/b94Dr/V7mpwBDCtQnqDAYDKO ozHM06c8qdzGLUcqT9Xw5W/QxikxBIcv+P9h87wkAPf9nqVm/bwd+3YtR/kLOotgvSvt 8XxPk5ko/5rFbObKf5BuryBnrAvXT0fzQ1nLOk9Lc3dtQdeHeIL72/mrm3Zy1rv7NpDY 6K8xbOuZVX7qR3Eqw4ikDpiiYzE6KjP5/1exeaT1uxcfo/zG987SxZse+/IIqmTKALpE pqB5xnO0ndN+Jhh1dDswdFpkMOQ09n/udfkBFZHGnkRGuFXtVBeJoVagURWKqSRWpbv8 W/Nw== X-Gm-Message-State: AOJu0YxZTSZFf4ag2jhZwk9ZsboVe9UpLURzQ4Sbc9p0PJtpD2CAeU5A kEIXjffavrI+oSmbEImhZl/RMA== X-Received: by 2002:aa7:88c8:0:b0:690:15c7:60d8 with SMTP id k8-20020aa788c8000000b0069015c760d8mr3508557pff.22.1694808242750; Fri, 15 Sep 2023 13:04:02 -0700 (PDT) Received: from www.outflux.net (198-0-35-241-static.hfc.comcastbusiness.net. [198.0.35.241]) by smtp.gmail.com with ESMTPSA id k15-20020aa792cf000000b0068a3f861b24sm3312716pfa.195.2023.09.15.13.04.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Sep 2023 13:04:02 -0700 (PDT) From: Kees Cook <keescook@chromium.org> To: Alasdair Kergon <agk@redhat.com> Cc: Kees Cook <keescook@chromium.org>, Mike Snitzer <snitzer@kernel.org>, dm-devel@redhat.com, Nathan Chancellor <nathan@kernel.org>, Nick Desaulniers <ndesaulniers@google.com>, Tom Rix <trix@redhat.com>, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-hardening@vger.kernel.org Subject: [PATCH] dm: Annotate struct dm_stat with __counted_by Date: Fri, 15 Sep 2023 13:04:01 -0700 Message-Id: <20230915200400.never.585-kees@kernel.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1178; i=keescook@chromium.org; h=from:subject:message-id; bh=hh6/l0ERrceykgj05rTGEqoGv9O3N3l11v+m7r5kK6w=; b=owEBbQKS/ZANAwAKAYly9N/cbcAmAcsmYgBlBLiwjAee1aCYWRgESmBPvaP+ZPywLMQavQYy6 K1opOJdk7yJAjMEAAEKAB0WIQSlw/aPIp3WD3I+bhOJcvTf3G3AJgUCZQS4sAAKCRCJcvTf3G3A JmEyD/9Nw4qdkEPs0CMpZYH9PJm4rFd+PH9nRC+v78Gfq/aOca9MZMGgAsVTNZVVLy3P6KBjD2m mtmN77g1YZHJHCVzbdUI0UvlIfsuR086YpqaUWYp7+Q7hZfHkyCcKKrUFceRRDruDxkNaUOsNN2 IzNy4s/CR4vogKkDt+GZ1M4KjWCNednV7pIbc7OTZ7oDfmLZSemK//MribH6UwbwstZZ/IbuMuy aeNZcS/1An4v4h1P+RuIKViYXbrMbIVTWpvGjOIbLasIYjcKoW9pSlewMy33Z139w9b2WMNcLGN 01cMC9t6y0j1p4xe4bkCrA0JEvmLH5zv+rMOGyLuvyeaG6u2Y41oqm+FNy5fEZOI3Neo6HIqjrW 8dQ4XaWrwKCWR6rc2vzr2N6EFCxh7FMrjtAvMQo4HoYMuzYpp+4owygZiP1XptuqamDfXDnhjTf d79h5FKJzmmzKtPa7y41OC7rFq2Hk7JciHa8JTHI3cw1D4J5VvcDE1ZlMq+Cxpi9QK4ImW7tWhS DrKAuYb0nA6Npm4thazac1wWwsCnAmJf6MLJqBrJfE1yYX4s3Tr2XuB22ABIm6T4hfpag6YFrbQ NiOsSHMZ6+N3PeHEo1lrusu22nve1JOWkpcUnxD7lJ3kW3pdEnfUXewlmUjhQFSa9tdp54xnhT6 5iS4QDJ ir8mttuw== X-Developer-Key: i=keescook@chromium.org; a=openpgp; fpr=A5C3F68F229DD60F723E6E138972F4DFDC6DC026 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Fri, 15 Sep 2023 13:05:00 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777135451359806867 X-GMAIL-MSGID: 1777135451359806867 |
Series |
dm: Annotate struct dm_stat with __counted_by
|
|
Commit Message
Kees Cook
Sept. 15, 2023, 8:04 p.m. UTC
Prepare for the coming implementation by GCC and Clang of the __counted_by
attribute. Flexible array members annotated with __counted_by can have
their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
(for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
functions).
As found with Coccinelle[1], add __counted_by for struct dm_stat.
[1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Mike Snitzer <snitzer@kernel.org>
Cc: dm-devel@redhat.com
Signed-off-by: Kees Cook <keescook@chromium.org>
---
drivers/md/dm-stats.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On 9/15/23 14:04, Kees Cook wrote: > Prepare for the coming implementation by GCC and Clang of the __counted_by > attribute. Flexible array members annotated with __counted_by can have > their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS > (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family > functions). > > As found with Coccinelle[1], add __counted_by for struct dm_stat. > > [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci > > Cc: Alasdair Kergon <agk@redhat.com> > Cc: Mike Snitzer <snitzer@kernel.org> > Cc: dm-devel@redhat.com > Signed-off-by: Kees Cook <keescook@chromium.org> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org> Thanks
On Fri, 15 Sep 2023 13:04:01 -0700, Kees Cook wrote: > Prepare for the coming implementation by GCC and Clang of the __counted_by > attribute. Flexible array members annotated with __counted_by can have > their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS > (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family > functions). > > As found with Coccinelle[1], add __counted_by for struct dm_stat. > > [...] Applied to for-next/hardening, thanks! [1/1] dm: Annotate struct dm_stat with __counted_by https://git.kernel.org/kees/c/e9d842d479ac Take care,
diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c index db2d997a6c18..bdc14ec99814 100644 --- a/drivers/md/dm-stats.c +++ b/drivers/md/dm-stats.c @@ -56,7 +56,7 @@ struct dm_stat { size_t percpu_alloc_size; size_t histogram_alloc_size; struct dm_stat_percpu *stat_percpu[NR_CPUS]; - struct dm_stat_shared stat_shared[]; + struct dm_stat_shared stat_shared[] __counted_by(n_entries); }; #define STAT_PRECISE_TIMESTAMPS 1