On Thu, Apr 1, 2021 at 6:40 PM Christian Brauner <christian.brauner@xxxxxxxxxx> wrote: > > On Thu, Apr 01, 2021 at 11:54:45AM +0200, Greg KH wrote: > > On Thu, Apr 01, 2021 at 05:09:32PM +0800, Xie Yongji wrote: > > > Use receive_fd() to receive file from another process instead of > > > combination of get_unused_fd_flags() and fd_install(). This simplifies > > > the logic and also makes sure we don't miss any security stuff. > > > > But no logic is simplified here, and nothing is "missed", so I do not > > understand this change at all. > > > > > > > > Signed-off-by: Xie Yongji <xieyongji@xxxxxxxxxxxxx> > > > --- > > > drivers/android/binder.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/android/binder.c b/drivers/android/binder.c > > > index c119736ca56a..080bcab7d632 100644 > > > --- a/drivers/android/binder.c > > > +++ b/drivers/android/binder.c > > > @@ -3728,7 +3728,7 @@ 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); > > > > Why 2 spaces? > > > > > > > > if (fd < 0) { > > > binder_debug(BINDER_DEBUG_TRANSACTION, > > > @@ -3741,7 +3741,7 @@ static int binder_apply_fd_fixups(struct binder_proc *proc, > > > "fd fixup txn %d fd %d\n", > > > t->debug_id, fd); > > > trace_binder_transaction_fd_recv(t, fd, fixup->offset); > > > - fd_install(fd, fixup->file); > > > + fput(fixup->file); > > > > Are you sure this is the same??? > > > > I d onot understand the need for this change at all, what is wrong with > > the existing code here? > > I suggested something like this. > Some time back we added receive_fd() for seccomp and SCM_RIGHTS to have > a unified way of installing file descriptors including taking care of > handling sockets and running security hooks. The helper also encompasses > the whole get_unused_fd() + fd_install dance. > My suggestion was to look at all the places were we currently open-code > this in drivers/: > Sorry for not following your suggestion. Yes, I looked at those places. But I found that we will add security_file_receive() implicitly if we replace get_unused_fd() + fd_install() with receive_fd() for most drivers. Not sure if there will be some regression. So I only do that where I think security_file_receive() is needed, that is this patch. Although it looks like this is not a good idea now... Thanks, Yongji _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel