lkml.org 
[lkml]   [2023]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] nvmet-fc: Annotate struct nvmet_fc_tgt_queue with __counted_by
    Date
    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 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 nvmet_fc_tgt_queue.

    Cc: James Smart <james.smart@broadcom.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Sagi Grimberg <sagi@grimberg.me>
    Cc: Chaitanya Kulkarni <kch@nvidia.com>
    Cc: linux-nvme@lists.infradead.org
    Link: https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci [1]
    Signed-off-by: Kees Cook <keescook@chromium.org>
    ---
    drivers/nvme/target/fc.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
    index 1ab6601fdd5c..0fa2d658cdeb 100644
    --- a/drivers/nvme/target/fc.c
    +++ b/drivers/nvme/target/fc.c
    @@ -146,7 +146,7 @@ struct nvmet_fc_tgt_queue {
    struct workqueue_struct *work_q;
    struct kref ref;
    struct rcu_head rcu;
    - struct nvmet_fc_fcp_iod fod[]; /* array of fcp_iods */
    + struct nvmet_fc_fcp_iod fod[] __counted_by(sqsize); /* array of fcp_iods */
    } __aligned(sizeof(unsigned long long));

    struct nvmet_fc_hostport {
    --
    2.34.1
    \
     
     \ /
      Last update: 2023-10-04 01:26    [W:4.228 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site