diff options
author | Kaho Ng <ngkaho1234@gmail.com> | 2016-07-19 13:38:44 +0300 |
---|---|---|
committer | Kaho Ng <ngkaho1234@gmail.com> | 2016-07-19 13:38:44 +0300 |
commit | 406ead063a0d8b8c415f1f4b7203276a8fbafbac (patch) | |
tree | 9fd7fd2a014ca93aeb1d0d0c9ac0544f5072b398 /Ext3Fsd | |
parent | 683008af75ab207bfc96e377586e7bd6da0404c0 (diff) |
ext4_xattr: reserve 4 bytes for each EA tables as end-of-list mark
Diffstat (limited to 'Ext3Fsd')
-rw-r--r-- | Ext3Fsd/ext4/ext4_xattr.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Ext3Fsd/ext4/ext4_xattr.c b/Ext3Fsd/ext4/ext4_xattr.c index 29a8c12..0cf333a 100644 --- a/Ext3Fsd/ext4/ext4_xattr.c +++ b/Ext3Fsd/ext4/ext4_xattr.c @@ -1144,16 +1144,19 @@ int ext4_fs_get_xattr_ref(PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB fs, PEXT2_MCB ref->IsOnDiskInodeDirty = FALSE; if (ext4_xattr_inode_space(ref) < - sizeof(struct ext4_xattr_ibody_header)) + sizeof(struct ext4_xattr_ibody_header) + + sizeof(__u32)) ref->inode_size_rem = 0; - else + else { ref->inode_size_rem = - ext4_xattr_inode_space(ref) - - sizeof(struct ext4_xattr_ibody_header); + ext4_xattr_inode_space(ref) - + sizeof(struct ext4_xattr_ibody_header); + } ref->block_size_rem = ext4_xattr_block_space(ref) - - sizeof(struct ext4_xattr_header); + sizeof(struct ext4_xattr_header) - + sizeof(__u32); rc = ext4_xattr_fetch(ref); if (rc != 0) { |