• Linus Torvalds's avatar
    hfs/hfsplus: avoid WARN_ON() for sanity check, use proper error handling · cb7a95af
    Linus Torvalds authored
    Commit 55d1cbbb ("hfs/hfsplus: use WARN_ON for sanity check") fixed
    a build warning by turning a comment into a WARN_ON(), but it turns out
    that syzbot then complains because it can trigger said warning with a
    corrupted hfs image.
    
    The warning actually does warn about a bad situation, but we are much
    better off just handling it as the error it is.  So rather than warn
    about us doing bad things, stop doing the bad things and return -EIO.
    
    While at it, also fix a memory leak that was introduced by an earlier
    fix for a similar syzbot warning situation, and add a check for one case
    that historically wasn't handled at all (ie neither comment nor
    subsequent WARN_ON).
    
    Reported-by: syzbot+7bb7cd3595533513a9e7@syzkaller.appspotmail.com
    Fixes: 55d1cbbb ("hfs/hfsplus: use WARN_ON for sanity check")
    Fixes: 8d824e69 ("hfs: fix OOB Read in __hfs_brec_find")
    Link: https://lore.kernel.org/lkml/000000000000dbce4e05f170f289@google.com/Tested-by: default avatarMichael Schmitz <schmitzmic@gmail.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Viacheslav Dubeyko <slava@dubeyko.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    cb7a95af
inode.c 18.8 KB