Re: [PATCH v3 3/7] selinux: Get rid of file_path_has_perm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 28, 2015 at 7:56 PM, Stephen Smalley <sds@xxxxxxxxxxxxx> wrote:
> On 10/28/2015 01:31 PM, Stephen Smalley wrote:
>>
>> On 10/28/2015 07:48 AM, Andreas Gruenbacher wrote:
>>>
>>> On Tue, Oct 27, 2015 at 5:40 PM, Stephen Smalley <sds@xxxxxxxxxxxxx>
>>> wrote:
>>>>
>>>> On 10/26/2015 05:15 PM, Andreas Gruenbacher wrote:
>>>>>
>>>>>
>>>>> Use path_has_perm directly instead.
>>>>
>>>>
>>>>
>>>> This reverts:
>>>>
>>>> commit 13f8e9810bff12d01807b6f92329111f45218235
>>>> Author: David Howells <dhowells@xxxxxxxxxx>
>>>> Date:   Thu Jun 13 23:37:55 2013 +0100
>>>>
>>>>      SELinux: Institute file_path_has_perm()
>>>>
>>>>      Create a file_path_has_perm() function that is like path_has_perm()
>>>> but
>>>>      instead takes a file struct that is the source of both the path and
>>>> the
>>>>      inode (rather than getting the inode from the dentry in the path).
>>>> This
>>>>      is then used where appropriate.
>>>>
>>>>      This will be useful for situations like unionmount where it will be
>>>>      possible to have an apparently-negative dentry (eg. a fallthrough)
>>>> that
>>>> is
>>>>      open with the file struct pointing to an inode on the lower fs.
>>>>
>>>>      Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
>>>>      Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
>>>>
>>>> which I think David was intending to use as part of his
>>>> SELinux/overlayfs
>>>> support.
>>>
>>>
>>> Okay. As long as overlayfs support in SELinux is in half-finished
>>> state, let's leave this alone.
>>
>>
>> Also, the caller is holding a spinlock (tty_files_lock), so you can't call
>> inode_doinit from
>> here.
>>
>> Try stress testing your patch series by just always setting
>> isec->initialized to LABEL_INVALID.
>> Previously the *has_perm functions could be called under essentially any
>> condition, with the exception
>> of when in a RCU walk and needing to audit the dname (but they did not
>> previously block/sleep).

Using might_sleep() is even better, then CONFIG_DEBUG_ATOMIC_SLEEP
will catch any remaining problems.

> file_has_perm() also gets called from match_file() callback to iterate_fd(),
> which holds files->file_lock.

Yes, thanks.

Andreas
_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.



[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux