2020-08-06 16:56:59

by Jann Horn

[permalink] [raw]
Subject: [PATCH] binder: Remove bogus warning on failed same-process transaction

While binder transactions with the same binder_proc as sender and recipient
are forbidden, transactions with the same task_struct as sender and
recipient are possible (even though currently there is a weird check in
binder_transaction() that rejects them in the target==0 case).
Therefore, task_struct identities can't be used to distinguish whether
the caller is running in the context of the sender or the recipient.

Since I see no easy way to make this WARN_ON() useful and correct, let's
just remove it.

Fixes: 44d8047f1d87 ("binder: use standard functions to allocate fds")
Reported-by: [email protected]
Signed-off-by: Jann Horn <[email protected]>
---
drivers/android/binder.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index f936530a19b0..5b0376344dbe 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -2344,8 +2344,6 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
* file is done when the transaction is torn
* down.
*/
- WARN_ON(failed_at &&
- proc->tsk == current->group_leader);
} break;
case BINDER_TYPE_PTR:
/*

base-commit: 47ec5303d73ea344e84f46660fff693c57641386
--
2.28.0.163.g6104cc2f0b6-goog


2020-08-06 16:59:58

by Todd Kjos

[permalink] [raw]
Subject: Re: [PATCH] binder: Remove bogus warning on failed same-process transaction

On Thu, Aug 6, 2020 at 9:54 AM Jann Horn <[email protected]> wrote:
>
> While binder transactions with the same binder_proc as sender and recipient
> are forbidden, transactions with the same task_struct as sender and
> recipient are possible (even though currently there is a weird check in
> binder_transaction() that rejects them in the target==0 case).
> Therefore, task_struct identities can't be used to distinguish whether
> the caller is running in the context of the sender or the recipient.
>
> Since I see no easy way to make this WARN_ON() useful and correct, let's
> just remove it.
>
> Fixes: 44d8047f1d87 ("binder: use standard functions to allocate fds")
> Reported-by: [email protected]
> Signed-off-by: Jann Horn <[email protected]>

Acked-by: Todd Kjos <[email protected]>

> ---
> drivers/android/binder.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/android/binder.c b/drivers/android/binder.c
> index f936530a19b0..5b0376344dbe 100644
> --- a/drivers/android/binder.c
> +++ b/drivers/android/binder.c
> @@ -2344,8 +2344,6 @@ static void binder_transaction_buffer_release(struct binder_proc *proc,
> * file is done when the transaction is torn
> * down.
> */
> - WARN_ON(failed_at &&
> - proc->tsk == current->group_leader);
> } break;
> case BINDER_TYPE_PTR:
> /*
>
> base-commit: 47ec5303d73ea344e84f46660fff693c57641386
> --
> 2.28.0.163.g6104cc2f0b6-goog
>

2020-08-07 14:09:34

by Christian Brauner

[permalink] [raw]
Subject: Re: [PATCH] binder: Remove bogus warning on failed same-process transaction

On Thu, Aug 06, 2020 at 06:53:59PM +0200, Jann Horn wrote:
> While binder transactions with the same binder_proc as sender and recipient
> are forbidden, transactions with the same task_struct as sender and
> recipient are possible (even though currently there is a weird check in
> binder_transaction() that rejects them in the target==0 case).
> Therefore, task_struct identities can't be used to distinguish whether
> the caller is running in the context of the sender or the recipient.
>
> Since I see no easy way to make this WARN_ON() useful and correct, let's
> just remove it.
>
> Fixes: 44d8047f1d87 ("binder: use standard functions to allocate fds")
> Reported-by: [email protected]
> Signed-off-by: Jann Horn <[email protected]>
> ---

Acked-by: Christian Brauner <[email protected]>

Thanks!
Christian