+ hfs-prevent-btree-data-loss-on-root-split.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     Subject: hfs: prevent btree data loss on root split
has been added to the -mm tree.  Its filename is
     hfs-prevent-btree-data-loss-on-root-split.patch

This patch should soon appear at
    http://ozlabs.org/~akpm/mmots/broken-out/hfs-prevent-btree-data-loss-on-root-split.patch
and later at
    http://ozlabs.org/~akpm/mmotm/broken-out/hfs-prevent-btree-data-loss-on-root-split.patch

Before you just go and hit "reply", please:
   a) Consider who else should be cc'ed
   b) Prefer to cc a suitable mailing list as well
   c) Ideally: find the original patch on the mailing list and do a
      reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***

The -mm tree is included into linux-next and is updated
there every 3-4 working days

------------------------------------------------------
Binary file patches/hfs-prevent-btree-data-loss-on-root-split.patch matches
Subject: hfs: prevent btree data loss on root split

This bug is triggered whenever hfs_brec_update_parent() needs to split
the root node.  The height of the btree is not increased, which leaves
the new node orphaned and its records lost.  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/9750b1415685c4adca10766895f6d5ef12babdb0.1535682463.git.ernesto.mnd.fernandez@xxxxxxxxx
Signed-off-by: Ernesto A. Fern�ez <ernesto.mnd.fernandez@xxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---


diff -puN fs/hfs/brec.c~hfs-prevent-btree-data-loss-on-root-split fs/hfs/brec.c
--- a/fs/hfs/brec.c~hfs-prevent-btree-data-loss-on-root-split
+++ a/fs/hfs/brec.c
@@ -425,6 +425,10 @@ skip:
 	if (new_node) {
 		__be32 cnid;
 
+		if (!new_node->parent) {
+			hfs_btree_inc_height(tree);
+			new_node->parent = tree->root;
+		}
 		fd->bnode = hfs_bnode_find(tree, new_node->parent);
 		/* create index key and entry */
 		hfs_bnode_read_key(new_node, fd->search_key, 14);
_

Patches currently in -mm which might be from ernesto.mnd.fernandez@xxxxxxxxx are





[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux