Skip to content

Commit

Permalink
eCryptfs: Return error when lower file pointer is NULL
Browse files Browse the repository at this point in the history
When an eCryptfs inode's lower file has been closed, and the pointer has
been set to NULL, return an error when trying to do a lower read or
write rather than calling BUG().

https://bugzilla.kernel.org/show_bug.cgi?id=37292

Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Cc: <stable@kernel.org>
  • Loading branch information
Tyler Hicks committed Aug 9, 2011
1 parent 322a8b0 commit f61500e
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions fs/ecryptfs/read_write.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,16 @@
int ecryptfs_write_lower(struct inode *ecryptfs_inode, char *data,
loff_t offset, size_t size)
{
struct ecryptfs_inode_info *inode_info;
struct file *lower_file;
mm_segment_t fs_save;
ssize_t rc;

inode_info = ecryptfs_inode_to_private(ecryptfs_inode);
BUG_ON(!inode_info->lower_file);
lower_file = ecryptfs_inode_to_private(ecryptfs_inode)->lower_file;
if (!lower_file)
return -EIO;
fs_save = get_fs();
set_fs(get_ds());
rc = vfs_write(inode_info->lower_file, data, size, &offset);
rc = vfs_write(lower_file, data, size, &offset);
set_fs(fs_save);
mark_inode_dirty_sync(ecryptfs_inode);
return rc;
Expand Down Expand Up @@ -225,15 +226,16 @@ int ecryptfs_write(struct inode *ecryptfs_inode, char *data, loff_t offset,
int ecryptfs_read_lower(char *data, loff_t offset, size_t size,
struct inode *ecryptfs_inode)
{
struct ecryptfs_inode_info *inode_info =
ecryptfs_inode_to_private(ecryptfs_inode);
struct file *lower_file;
mm_segment_t fs_save;
ssize_t rc;

BUG_ON(!inode_info->lower_file);
lower_file = ecryptfs_inode_to_private(ecryptfs_inode)->lower_file;
if (!lower_file)
return -EIO;
fs_save = get_fs();
set_fs(get_ds());
rc = vfs_read(inode_info->lower_file, data, size, &offset);
rc = vfs_read(lower_file, data, size, &offset);
set_fs(fs_save);
return rc;
}
Expand Down

0 comments on commit f61500e

Please sign in to comment.