lkml.org 
[lkml]   [2019]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 096/150] hfs: fix BUG on bnode parent update
    Date
    From: Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>

    [ Upstream commit ef75bcc5763d130451a99825f247d301088b790b ]

    hfs_brec_update_parent() may hit BUG_ON() if the first record of both a
    leaf node and its parent are changed, and if this forces the parent to
    be split. It is not possible for this to happen on a valid hfs
    filesystem because the index nodes have fixed length keys.

    For reasons I ignore, the hfs module does have support for a number of
    hfsplus features. A corrupt btree header may report variable length
    keys and trigger this BUG, so it's better to fix it.

    Link: http://lkml.kernel.org/r/cf9b02d57f806217a2b1bf5db8c3e39730d8f603.1535682463.git.ernesto.mnd.fernandez@gmail.com
    Signed-off-by: Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Viacheslav Dubeyko <slava@dubeyko.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/hfs/brec.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/fs/hfs/brec.c b/fs/hfs/brec.c
    index da25c49203cc5..896396554bcc1 100644
    --- a/fs/hfs/brec.c
    +++ b/fs/hfs/brec.c
    @@ -445,6 +445,7 @@ static int hfs_brec_update_parent(struct hfs_find_data *fd)
    /* restore search_key */
    hfs_bnode_read_key(node, fd->search_key, 14);
    }
    + new_node = NULL;
    }

    if (!rec && node->parent)
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-11-16 16:50    [W:4.088 / U:0.420 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site