• Darrick J. Wong's avatar
    xfs: fix memcpy fortify errors in EFI log format copying · 03a7485c
    Darrick J. Wong authored
    Starting in 6.1, CONFIG_FORTIFY_SOURCE checks the length parameter of
    memcpy.  Since we're already fixing problems with BUI item copying, we
    should fix it everything else.
    
    An extra difficulty here is that the ef[id]_extents arrays are declared
    as single-element arrays.  This is not the convention for flex arrays in
    the modern kernel, and it causes all manner of problems with static
    checking tools, since they often cannot tell the difference between a
    single element array and a flex array.
    
    So for starters, change those array[1] declarations to array[]
    declarations to signal that they are proper flex arrays and adjust all
    the "size-1" expressions to fit the new declaration style.
    
    Next, refactor the xfs_efi_copy_format function to handle the copying of
    the head and the flex array members separately.  While we're at it, fix
    a minor validation deficiency in the recovery function.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    Reviewed-by: default avatarAllison Henderson <allison.henderson@oracle.com>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    03a7485c
xfs_log_format.h 31.4 KB