Re: [PATCH] hfsplus: Fix crash and filesystem corruption when deleting files

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

 



Hi Andrew,

> On 28 Mar 2020, at 23:14, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, 27 Mar 2020 16:55:40 +0100 Simon Gander <simon@xxxxxxxxxx> wrote:
>> When removing files containing extended attributes, the hfsplus driver
>> may remove the wrong entries from the attributes b-tree, causing major
>> filesystem damage and in some cases even kernel crashes.
>> 
>> To remove a file, all its extended attributes have to be removed as well.
>> The driver does this by looking up all keys in the attributes b-tree with
>> the cnid of the file. Each of these entries then gets deleted using the
>> key used for searching, which doesn't contain the attribute's name when it
>> should. Since the key doesn't contain the name, the deletion routine will
>> not find the correct entry and instead remove the one in front of it. If
>> parent nodes have to be modified, these become corrupt as well. This causes
>> invalid links and unsorted entries that not even macOS's fsck_hfs is able
>> to fix.
>> 
>> To fix this, modify the search key before an entry is deleted from the
>> attributes b-tree by copying the found entry's key into the search key,
>> therefore ensuring that the correct entry gets removed from the tree.
> 
> This seems fairly important.  Should it have a cc:stable?

It is - that is why we are pushing it upstream.  And yes, I think a cc:stable would be a good idea!

Best regards,

	Anton
-- 
Anton Altaparmakov <anton at tuxera.com> (replace at with @)
Lead in File System Development, Tuxera Inc., http://www.tuxera.com/
Linux NTFS maintainer




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux