• Jesper Juhl's avatar
    Btrfs: Make free_ipath() deal gracefully with NULL pointers · 4735fb28
    Jesper Juhl authored
    Make free_ipath() behave like most other freeing functions in the
    kernel and gracefully do nothing when passed a NULL pointer.
    
    Besides this making the bahaviour consistent with functions such as
    kfree(), vfree(), btrfs_free_path() etc etc, it also fixes a real NULL
    deref issue in fs/btrfs/ioctl.c::btrfs_ioctl_ino_to_path(). In that
    function we have this code:
    
    ...
            ipath = init_ipath(size, root, path);
            if (IS_ERR(ipath)) {
                    ret = PTR_ERR(ipath);
                    ipath = NULL;
                    goto out;
            }
    ...
    out:
            btrfs_free_path(path);
            free_ipath(ipath);
    ...
    
    If we ever take the true branch of that 'if' statement we'll end up
    passing a NULL pointer to free_ipath() which will subsequently
    dereference it and we'll go "Boom" :-(
    This patch will avoid that.
    Signed-off-by: default avatarJesper Juhl <jj@chaosbits.net>
    4735fb28
backref.c 36.3 KB