On Wed, Mar 31, 2021 at 11:15:45AM +0200, Christian Brauner
wrote:> On Wed, Mar 31, 2021 at 04:05:10PM +0800, Xie Yongji wrote:
> > Export receive_fd() so that some modules can use
> > it to pass file descriptor between processes without
> > missing any security stuffs.
> >
> > Signed-off-by: Xie Yongji <xieyongji at bytedance.com>
> > ---
>
> Yeah, as I said in the other mail I'd be comfortable with exposing just
> this variant of the helper.
> Maybe this should be a separate patch bundled together with Christoph's
> patch to split parts of receive_fd() into a separate helper.
> This would also allow us to simplify a few other codepaths in drivers as
> well btw. I just took a hasty stab at two of them:
>
> diff --git a/drivers/android/binder.c b/drivers/android/binder.c
> index c119736ca56a..3c716bf6d84b 100644
> --- a/drivers/android/binder.c
> +++ b/drivers/android/binder.c
> @@ -3728,8 +3728,9 @@ static int binder_apply_fd_fixups(struct binder_proc
*proc,
> int ret = 0;
>
> list_for_each_entry(fixup, &t->fd_fixups, fixup_entry) {
> - int fd = get_unused_fd_flags(O_CLOEXEC);
> + int fd = receive_fd(fixup->file, O_CLOEXEC);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Assignment duplicated on the next line.
>
> + fd = receive_fd(fixup->file, O_CLOEXEC);
> if (fd < 0) {
> binder_debug(BINDER_DEBUG_TRANSACTION,
> "failed fd fixup txn %d fd
%d\n",
regards,
dan carpenter