binder: fix sender_euid type in uapi header
authorCarlos Llamas <cmllamas@google.com>
Wed, 1 Jun 2022 01:00:17 +0000 (01:00 +0000)
committerArnd Bergmann <arnd@arndb.de>
Thu, 2 Jun 2022 15:47:25 +0000 (17:47 +0200)
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>
Acked-by: Todd Kjos <tkjos@google.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
include/uapi/linux/android/binder.h

index 11157fa..688bcda 100644 (file)
@@ -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 */