Re: [PATCH 00/15] Tidy up file permission hooks

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

 



On Tue, Nov 14, 2023 at 5:32 PM Amir Goldstein <amir73il@xxxxxxxxx> wrote:
>
> Hi Christian,
>

OOPS, posted to the wrong list.
Re-posting to fsdevel.

Sorry for the noise.

Amir.


> I realize you won't have time to review this week, but wanted to get
> this series out for review for a wider audience soon.
>
> During my work on fanotify "pre content" events [1], Jan and I noticed
> some inconsistencies in the call sites of security_file_permission()
> hooks inside rw_verify_area() and remap_verify_area().
>
> The majority of call sites are before file_start_write(), which is how
> we want them to be for fanotify "pre content" events.
>
> For splice code, there are many duplicate calls to rw_verify_area()
> for the entire range as well as for partial ranges inside iterator.
>
> This cleanup series, mostly following Jan's suggestions, moves all
> the security_file_permission() hooks before file_start_write() and
> eliminates duplicate permission hook calls in the same call chain.
>
> The last 3 patches are helpers that I used in fanotify patches to
> assert that permission hooks are called with expected locking scope.
>
> My hope is to get this work reviewed and staged in the vfs tree
> for the 6.8 cycle, so that I can send Jan fanotify patches for
> "pre content" events based on a stable branch in the vfs tree.
>
> Thanks,
> Amir.
>
> [1] https://github.com/amir73il/linux/commits/fan_pre_content
>
> Amir Goldstein (15):
>   ovl: add permission hooks outside of do_splice_direct()
>   splice: remove permission hook from do_splice_direct()
>   splice: move permission hook out of splice_direct_to_actor()
>   splice: move permission hook out of splice_file_to_pipe()
>   splice: remove permission hook from iter_file_splice_write()
>   remap_range: move permission hooks out of do_clone_file_range()
>   remap_range: move file_start_write() to after permission hook
>   btrfs: move file_start_write() to after permission hook
>   fs: move file_start_write() into vfs_iter_write()
>   fs: move permission hook out of do_iter_write()
>   fs: move permission hook out of do_iter_read()
>   fs: move kiocb_start_write() into vfs_iocb_iter_write()
>   fs: create __sb_write_started() helper
>   fs: create file_write_started() helper
>   fs: create {sb,file}_write_not_started() helpers
>
>  drivers/block/loop.c   |   2 -
>  fs/btrfs/ioctl.c       |  12 +--
>  fs/cachefiles/io.c     |   2 -
>  fs/coda/file.c         |   4 +-
>  fs/internal.h          |   8 +-
>  fs/nfsd/vfs.c          |   7 +-
>  fs/overlayfs/copy_up.c |  26 ++++++-
>  fs/overlayfs/file.c    |   3 -
>  fs/read_write.c        | 164 +++++++++++++++++++++++++++--------------
>  fs/remap_range.c       |  48 ++++++------
>  fs/splice.c            |  78 ++++++++++++--------
>  include/linux/fs.h     |  62 +++++++++++++++-
>  12 files changed, 279 insertions(+), 137 deletions(-)
>
> --
> 2.34.1
>




[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux