lkml.org 
[lkml]   [2023]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] afs: Annotate struct afs_addr_list with __counted_by
    From


    On 9/15/23 14:14, 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 afs_addr_list.
    >
    > [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci
    >
    > Cc: David Howells <dhowells@redhat.com>
    > Cc: Marc Dionne <marc.dionne@auristor.com>
    > Cc: linux-afs@lists.infradead.org
    > Signed-off-by: Kees Cook <keescook@chromium.org>

    Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

    Thanks
    --
    Gustavo

    > ---
    > fs/afs/internal.h | 2 +-
    > 1 file changed, 1 insertion(+), 1 deletion(-)
    >
    > diff --git a/fs/afs/internal.h b/fs/afs/internal.h
    > index da73b97e19a9..07433a5349ca 100644
    > --- a/fs/afs/internal.h
    > +++ b/fs/afs/internal.h
    > @@ -87,7 +87,7 @@ struct afs_addr_list {
    > enum dns_lookup_status status:8;
    > unsigned long failed; /* Mask of addrs that failed locally/ICMP */
    > unsigned long responded; /* Mask of addrs that responded */
    > - struct sockaddr_rxrpc addrs[];
    > + struct sockaddr_rxrpc addrs[] __counted_by(max_addrs);
    > #define AFS_MAX_ADDRESSES ((unsigned int)(sizeof(unsigned long) * 8))
    > };
    >

    \
     
     \ /
      Last update: 2023-09-15 22:52    [W:2.681 / U:0.452 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site