binder: fix max_thread type inconsistency
authorCarlos Llamas <cmllamas@google.com>
Sun, 21 Apr 2024 17:37:49 +0000 (17:37 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 May 2024 16:59:47 +0000 (18:59 +0200)
The type defined for the BINDER_SET_MAX_THREADS ioctl was changed from
size_t to __u32 in order to avoid incompatibility issues between 32 and
64-bit kernels. However, the internal types used to copy from user and
store the value were never updated. Use u32 to fix the inconsistency.

Fixes: a9350fc859ae ("staging: android: binder: fix BINDER_SET_MAX_THREADS declaration")
Reported-by: Arve Hjønnevåg <arve@android.com>
Cc: stable@vger.kernel.org
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20240421173750.3117808-1-cmllamas@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/android/binder.c
drivers/android/binder_internal.h

index dd6923d37931f9565dac0a112458a885568a4253..b21a7b246a0dc454f407c9c9e2cda17a60e62bab 100644 (file)
@@ -5367,7 +5367,7 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                        goto err;
                break;
        case BINDER_SET_MAX_THREADS: {
-               int max_threads;
+               u32 max_threads;
 
                if (copy_from_user(&max_threads, ubuf,
                                   sizeof(max_threads))) {
index 7270d4d22207021007af32638b79b0e48bdd313c..5b7c80b99ae865ff9e0a5106fc2a06b03be75a40 100644 (file)
@@ -421,7 +421,7 @@ struct binder_proc {
        struct list_head todo;
        struct binder_stats stats;
        struct list_head delivered_death;
-       int max_threads;
+       u32 max_threads;
        int requested_threads;
        int requested_threads_started;
        int tmp_ref;