Re: [f2fs-dev] [PATCH] f2fs: relax permission for atomic/volatile ioctls

From: Chao Yu
Date: Thu Jul 06 2017 - 20:59:13 EST


On 2017/7/7 8:16, Jaegeuk Kim wrote:
> On 07/07, Chao Yu wrote:
>> On 2017/7/6 10:23, Jaegeuk Kim wrote:
>>> This patch allows atomic/volatile ioctls for sqlite under sdcardfs.
>>
>> Out of curiosity, we will lose some capable when passing through sdcardfs?
>
> I don't think so. But, it seems a test applicaion tries to access database from
> difference uid.

Oh, is that really allowed? if the sqlite database is public in sdcard directory,
application needs to apply WRITE_EXTERNAL_STORAGE in order to add itself to
sdcard_rw group, then it can access the database. Right?

Thanks,

>
> Thanks,
>
>>
>> Thanks,
>>
>>>
>>> Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>> ---
>>> fs/f2fs/file.c | 15 ---------------
>>> 1 file changed, 15 deletions(-)
>>>
>>> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
>>> index f5d6357e8360..dd8f5d2caa48 100644
>>> --- a/fs/f2fs/file.c
>>> +++ b/fs/f2fs/file.c
>>> @@ -1587,9 +1587,6 @@ static int f2fs_ioc_start_atomic_write(struct file *filp)
>>> struct inode *inode = file_inode(filp);
>>> int ret;
>>>
>>> - if (!inode_owner_or_capable(inode))
>>> - return -EACCES;
>>> -
>>> if (!S_ISREG(inode->i_mode))
>>> return -EINVAL;
>>>
>>> @@ -1636,9 +1633,6 @@ static int f2fs_ioc_commit_atomic_write(struct file *filp)
>>> struct inode *inode = file_inode(filp);
>>> int ret;
>>>
>>> - if (!inode_owner_or_capable(inode))
>>> - return -EACCES;
>>> -
>>> ret = mnt_want_write_file(filp);
>>> if (ret)
>>> return ret;
>>> @@ -1672,9 +1666,6 @@ static int f2fs_ioc_start_volatile_write(struct file *filp)
>>> struct inode *inode = file_inode(filp);
>>> int ret;
>>>
>>> - if (!inode_owner_or_capable(inode))
>>> - return -EACCES;
>>> -
>>> if (!S_ISREG(inode->i_mode))
>>> return -EINVAL;
>>>
>>> @@ -1707,9 +1698,6 @@ static int f2fs_ioc_release_volatile_write(struct file *filp)
>>> struct inode *inode = file_inode(filp);
>>> int ret;
>>>
>>> - if (!inode_owner_or_capable(inode))
>>> - return -EACCES;
>>> -
>>> ret = mnt_want_write_file(filp);
>>> if (ret)
>>> return ret;
>>> @@ -1736,9 +1724,6 @@ static int f2fs_ioc_abort_volatile_write(struct file *filp)
>>> struct inode *inode = file_inode(filp);
>>> int ret;
>>>
>>> - if (!inode_owner_or_capable(inode))
>>> - return -EACCES;
>>> -
>>> ret = mnt_want_write_file(filp);
>>> if (ret)
>>> return ret;
>>>