lkml.org 
[lkml]   [2021]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH][next] cifs: cifspdu.h: Replace one-element array with flexible-array member
    There is a regular need in the kernel to provide a way to declare having
    a dynamically sized set of trailing elements in a structure. Kernel code
    should always use “flexible array members”[1] for these cases. The older
    style of one-element or zero-length arrays should no longer be used[2].

    Also, this helps with the ongoing efforts to enable -Warray-bounds by
    fixing the following warning:

    CC [M] fs/cifs/cifssmb.o
    fs/cifs/cifssmb.c: In function ‘CIFSFindNext’:
    fs/cifs/cifssmb.c:4636:23: warning: array subscript 1 is above array bounds of ‘char[1]’ [-Warray-bounds]
    4636 | pSMB->ResumeFileName[name_len+1] = 0;
    | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~

    [1] https://en.wikipedia.org/wiki/Flexible_array_member
    [2] https://www.kernel.org/doc/html/v5.10/process/deprecated.html#zero-length-and-one-element-arrays

    Link: https://github.com/KSPP/linux/issues/79
    Link: https://github.com/KSPP/linux/issues/109
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    ---
    fs/cifs/cifspdu.h | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/fs/cifs/cifspdu.h b/fs/cifs/cifspdu.h
    index 64fe5a47b5e8..475a517360e5 100644
    --- a/fs/cifs/cifspdu.h
    +++ b/fs/cifs/cifspdu.h
    @@ -1898,7 +1898,7 @@ typedef struct smb_com_transaction2_fnext_req {
    __le16 InformationLevel;
    __u32 ResumeKey;
    __le16 SearchFlags;
    - char ResumeFileName[1];
    + char ResumeFileName[];
    } __attribute__((packed)) TRANSACTION2_FNEXT_REQ;

    typedef struct smb_com_transaction2_fnext_rsp {
    --
    2.27.0
    \
     
     \ /
      Last update: 2021-03-26 03:13    [W:2.262 / U:2.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site