[PATCH] binder: fix sender_euid type in uapi header

Carlos Llamas posted 1 patch 3 years, 11 months ago
include/uapi/linux/android/binder.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] binder: fix sender_euid type in uapi header
Posted by Carlos Llamas 3 years, 11 months ago
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@google.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
---
 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
Re: [PATCH] binder: fix sender_euid type in uapi header
Posted by Masahiro Yamada 3 years, 11 months ago
On Wed, Jun 1, 2022 at 10:00 AM Carlos Llamas <cmllamas@google.com> 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@google.com>
> Signed-off-by: Carlos Llamas <cmllamas@google.com>
> ---

Ahhh, good catch.

Thank you for fixing this!

 Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>


>  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
Re: [PATCH] binder: fix sender_euid type in uapi header
Posted by Todd Kjos 3 years, 11 months ago
On Wed, Jun 1, 2022 at 9:53 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> On Wed, Jun 1, 2022 at 10:00 AM Carlos Llamas <cmllamas@google.com> 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@google.com>
> > Signed-off-by: Carlos Llamas <cmllamas@google.com>
> > ---
>
> Ahhh, good catch.
>
> Thank you for fixing this!
>
>  Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>

Acked-by: Todd Kjos <tkjos@google.com>

>
>
> >  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