mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
fs/ntfs3: Minor ntfs_list_ea refactoring
For easy internal debugging. Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
parent
7443753436
commit
791e5620c1
1 changed files with 13 additions and 12 deletions
|
@ -195,10 +195,8 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
|
|||
{
|
||||
const struct EA_INFO *info;
|
||||
struct EA_FULL *ea_all = NULL;
|
||||
const struct EA_FULL *ea;
|
||||
u32 off, size;
|
||||
int err;
|
||||
int ea_size;
|
||||
size_t ret;
|
||||
|
||||
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,
|
|||
|
||||
/* Enumerate all xattrs. */
|
||||
ret = 0;
|
||||
for (off = 0; off + sizeof(struct EA_FULL) < size; off += ea_size) {
|
||||
ea = Add2Ptr(ea_all, off);
|
||||
ea_size = unpacked_ea_size(ea);
|
||||
off = 0;
|
||||
while (off + sizeof(struct EA_FULL) < size) {
|
||||
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;
|
||||
|
||||
if (ea->name_len > ea_size) {
|
||||
if (name_len > ea_size) {
|
||||
ntfs_set_state(ni->mi.sbi, NTFS_DIRTY_ERROR);
|
||||
err = -EINVAL; /* corrupted fs */
|
||||
err = -EINVAL; /* corrupted fs. */
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -230,16 +230,17 @@ static ssize_t ntfs_list_ea(struct ntfs_inode *ni, char *buffer,
|
|||
if (off + ea_size > size)
|
||||
break;
|
||||
|
||||
if (ret + ea->name_len + 1 > bytes_per_buffer) {
|
||||
if (ret + name_len + 1 > bytes_per_buffer) {
|
||||
err = -ERANGE;
|
||||
goto out;
|
||||
}
|
||||
|
||||
memcpy(buffer + ret, ea->name, ea->name_len);
|
||||
buffer[ret + ea->name_len] = 0;
|
||||
memcpy(buffer + ret, ea->name, name_len);
|
||||
buffer[ret + name_len] = 0;
|
||||
}
|
||||
|
||||
ret += ea->name_len + 1;
|
||||
ret += name_len + 1;
|
||||
off += ea_size;
|
||||
}
|
||||
|
||||
out:
|
||||
|
|
Loading…
Reference in a new issue