• Nathan Scott's avatar
    [XFS] Fix xfs_free_extent related NULL pointer dereference. · 0e1edbd9
    Nathan Scott authored
    We recently fixed an out-of-space deadlock in XFS, and part of that fix
    involved the addition of the XFS_ALLOC_FLAG_FREEING flag to some of the
    space allocator calls to indicate they're freeing space, not allocating
    it. There was a missed xfs_alloc_fix_freelist condition test that did not
    correctly test "flags". The same test would also test an uninitialised
    structure field (args->userdata) and depending on its value either would
    or would not return early with a critical buffer pointer set to NULL.
    
    This fixes that up, adds asserts to several places to catch future botches
    of this nature, and skips sections of xfs_alloc_fix_freelist that are
    irrelevent for the space-freeing case.
    
    SGI-PV: 955303
    SGI-Modid: xfs-linux-melb:xfs-kern:26743a
    Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
    0e1edbd9
xfs_alloc.c 73.7 KB