Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matt-wu/Ext3Fsd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaho Ng <ngkaho1234@gmail.com>2016-07-19 13:38:44 +0300
committerKaho Ng <ngkaho1234@gmail.com>2016-07-19 13:38:44 +0300
commit406ead063a0d8b8c415f1f4b7203276a8fbafbac (patch)
tree9fd7fd2a014ca93aeb1d0d0c9ac0544f5072b398 /Ext3Fsd
parent683008af75ab207bfc96e377586e7bd6da0404c0 (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.c13
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) {