• Kees Cook's avatar
    scsi: csiostor: Avoid content leaks and casts · 42c335f7
    Kees Cook authored
    When copying attributes, the len argument was padded out and the
    resulting memcpy() would copy beyond the end of the source buffer.
    Avoid this, and use size_t for val_len to avoid all the casts.
    Similarly, avoid source buffer casts and use void *.
    
    Additionally enforces val_len can be represented by u16 and that the DMA
    buffer was not overflowed. Fixes the size of mfa, which is not
    FC_FDMI_PORT_ATTR_MAXFRAMESIZE_LEN (but it will be padded up to 4). This
    was noticed by the future CONFIG_FORTIFY_SOURCE checks.
    
    Cc: Daniel Micay <danielmicay@gmail.com>
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Acked-by: default avatarVarun Prakash <varun@chelsio.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    42c335f7
csio_lnode.c 53.4 KB