Re: [PATCH] binder: fix sender_euid type in uapi header

From: Masahiro Yamada
Date: Wed Jun 01 2022 - 12:53:31 EST


On Wed, Jun 1, 2022 at 10:00 AM Carlos Llamas <cmllamas@xxxxxxxxxx> wrote:
>
> The {pid,uid}_t fields of struct binder_transaction were recently
> replaced to use kernel types in commit 169adc2b6b3c ("android/binder.h:
> add linux/android/binder(fs).h to UAPI compile-test coverage").
>
> However, using __kernel_uid_t here breaks backwards compatibility in
> architectures using 16-bits for this type, since glibc and some others
> still expect a 32-bit uid_t. Instead, let's use __kernel_uid32_t which
> avoids this compatibility problem.
>
> Fixes: 169adc2b6b3c ("android/binder.h: add linux/android/binder(fs).h to UAPI compile-test coverage")
> Reported-by: Christopher Ferris <cferris@xxxxxxxxxx>
> Signed-off-by: Carlos Llamas <cmllamas@xxxxxxxxxx>
> ---

Ahhh, good catch.

Thank you for fixing this!

Reviewed-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>


> include/uapi/linux/android/binder.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/uapi/linux/android/binder.h b/include/uapi/linux/android/binder.h
> index 11157fae8a8e..688bcdaeed53 100644
> --- a/include/uapi/linux/android/binder.h
> +++ b/include/uapi/linux/android/binder.h
> @@ -289,7 +289,7 @@ struct binder_transaction_data {
> /* General information about the transaction. */
> __u32 flags;
> __kernel_pid_t sender_pid;
> - __kernel_uid_t sender_euid;
> + __kernel_uid32_t sender_euid;
> binder_size_t data_size; /* number of bytes of data */
> binder_size_t offsets_size; /* number of bytes of offsets */
>
> --
> 2.36.1.255.ge46751e96f-goog
>


--
Best Regards
Masahiro Yamada