Commit 791e5620 authored by Konstantin Komarov's avatar Konstantin Komarov

fs/ntfs3: Minor ntfs_list_ea refactoring

For easy internal debugging.
Signed-off-by: default avatarKonstantin Komarov <almaz.alexandrovich@paragon-software.com>
parent 74437534
...@@ -195,10 +195,8 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer, ...@@ -195,10 +195,8 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
{ {
const struct EA_INFO *info; const struct EA_INFO *info;
struct EA_FULL *ea_all = NULL; struct EA_FULL *ea_all = NULL;
const struct EA_FULL *ea;
u32 off, size; u32 off, size;
int err; int err;
int ea_size;
size_t ret; size_t ret;
err = ntfs_read_ea(ni, &ea_all, 0, &info); err = ntfs_read_ea(ni, &ea_all, 0, &info);
...@@ -212,16 +210,18 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer, ...@@ -212,16 +210,18 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
/* Enumerate all xattrs. */ /* Enumerate all xattrs. */
ret = 0; ret = 0;
for (off = 0; off + sizeof(struct EA_FULL) < size; off += ea_size) { off = 0;
ea = Add2Ptr(ea_all, off); while (off + sizeof(struct EA_FULL) < size) {
ea_size = unpacked_ea_size(ea); const struct EA_FULL *ea = Add2Ptr(ea_all, off);
int ea_size = unpacked_ea_size(ea);
u8 name_len = ea->name_len;
if (!ea->name_len) if (!name_len)
break; break;
if (ea->name_len > ea_size) { if (name_len > ea_size) {
ntfs_set_state(ni->mi.sbi, NTFS_DIRTY_ERROR); ntfs_set_state(ni->mi.sbi, NTFS_DIRTY_ERROR);
err = -EINVAL; /* corrupted fs */ err = -EINVAL; /* corrupted fs. */
break; break;
} }
...@@ -230,16 +230,17 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer, ...@@ -230,16 +230,17 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
if (off + ea_size > size) if (off + ea_size > size)
break; break;
if (ret + ea->name_len + 1 > bytes_per_buffer) { if (ret + name_len + 1 > bytes_per_buffer) {
err = -ERANGE; err = -ERANGE;
goto out; goto out;
} }
memcpy(buffer + ret, ea->name, ea->name_len); memcpy(buffer + ret, ea->name, name_len);
buffer[ret + ea->name_len] = 0; buffer[ret + name_len] = 0;
} }
ret += ea->name_len + 1; ret += name_len + 1;
off += ea_size;
} }
out: out:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment