Skip to content

Commit 7a86617

Browse files
author
Tyler Hicks
committed
eCryptfs: Return useful code from contains_ecryptfs_marker
Instead of having the calling functions translate the true/false return code to either 0 or -EINVAL, have contains_ecryptfs_marker() return 0 or -EINVAL so that the calling functions can just reuse the return code. Also, rename the function to ecryptfs_validate_marker() to avoid callers mistakenly thinking that it returns true/false codes. Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
1 parent 3b06b3e commit 7a86617

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

fs/ecryptfs/crypto.c

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,25 +1024,25 @@ int ecryptfs_new_file_context(struct dentry *ecryptfs_dentry)
10241024
}
10251025

10261026
/**
1027-
* contains_ecryptfs_marker - check for the ecryptfs marker
1027+
* ecryptfs_validate_marker - check for the ecryptfs marker
10281028
* @data: The data block in which to check
10291029
*
1030-
* Returns one if marker found; zero if not found
1030+
* Returns zero if marker found; -EINVAL if not found
10311031
*/
1032-
static int contains_ecryptfs_marker(char *data)
1032+
static int ecryptfs_validate_marker(char *data)
10331033
{
10341034
u32 m_1, m_2;
10351035

10361036
m_1 = get_unaligned_be32(data);
10371037
m_2 = get_unaligned_be32(data + 4);
10381038
if ((m_1 ^ MAGIC_ECRYPTFS_MARKER) == m_2)
1039-
return 1;
1039+
return 0;
10401040
ecryptfs_printk(KERN_DEBUG, "m_1 = [0x%.8x]; m_2 = [0x%.8x]; "
10411041
"MAGIC_ECRYPTFS_MARKER = [0x%.8x]\n", m_1, m_2,
10421042
MAGIC_ECRYPTFS_MARKER);
10431043
ecryptfs_printk(KERN_DEBUG, "(m_1 ^ MAGIC_ECRYPTFS_MARKER) = "
10441044
"[0x%.8x]\n", (m_1 ^ MAGIC_ECRYPTFS_MARKER));
1045-
return 0;
1045+
return -EINVAL;
10461046
}
10471047

10481048
struct ecryptfs_flag_map_elem {
@@ -1217,10 +1217,7 @@ int ecryptfs_read_and_validate_header_region(char *data,
12171217
__func__, rc);
12181218
goto out;
12191219
}
1220-
if (!contains_ecryptfs_marker(data + ECRYPTFS_FILE_SIZE_BYTES)) {
1221-
rc = -EINVAL;
1222-
} else
1223-
rc = 0;
1220+
rc = ecryptfs_validate_marker(data + ECRYPTFS_FILE_SIZE_BYTES);
12241221
out:
12251222
return rc;
12261223
}
@@ -1496,11 +1493,9 @@ static int ecryptfs_read_headers_virt(char *page_virt,
14961493
crypt_stat->mount_crypt_stat = &ecryptfs_superblock_to_private(
14971494
ecryptfs_dentry->d_sb)->mount_crypt_stat;
14981495
offset = ECRYPTFS_FILE_SIZE_BYTES;
1499-
rc = contains_ecryptfs_marker(page_virt + offset);
1500-
if (rc == 0) {
1501-
rc = -EINVAL;
1496+
rc = ecryptfs_validate_marker(page_virt + offset);
1497+
if (rc)
15021498
goto out;
1503-
}
15041499
if (!(crypt_stat->flags & ECRYPTFS_I_SIZE_INITIALIZED))
15051500
ecryptfs_i_size_init(page_virt, ecryptfs_dentry->d_inode);
15061501
offset += MAGIC_ECRYPTFS_MARKER_SIZE_BYTES;
@@ -1575,11 +1570,10 @@ int ecryptfs_read_and_validate_xattr_region(char *page_virt,
15751570
rc = ecryptfs_read_xattr_region(page_virt, inode);
15761571
if (rc)
15771572
goto out;
1578-
if (!contains_ecryptfs_marker(page_virt + ECRYPTFS_FILE_SIZE_BYTES)) {
1573+
rc = ecryptfs_validate_marker(page_virt + ECRYPTFS_FILE_SIZE_BYTES);
1574+
if (rc)
15791575
printk(KERN_WARNING "Valid data found in [%s] xattr, but "
15801576
"the marker is invalid\n", ECRYPTFS_XATTR_NAME);
1581-
rc = -EINVAL;
1582-
}
15831577
out:
15841578
return rc;
15851579
}

0 commit comments

Comments
 (0)