diff options
author | Martijn Coenen <maco@android.com> | 2017-07-28 14:56:06 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-09-09 18:39:27 +0300 |
commit | 74ffccfed38ff8423d133adecfe859af5534a9d0 (patch) | |
tree | 876f181c7bcdfb04e7c739f1a6190f74ea3fc5e1 | |
parent | 68596cc2106016950eab542851e179e5401fa130 (diff) | |
download | linux-74ffccfed38ff8423d133adecfe859af5534a9d0.tar.xz |
ANDROID: binder: add padding to binder_fd_array_object.
commit 5cdcf4c6a638591ec0e98c57404a19e7f9997567 upstream.
binder_fd_array_object starts with a 4-byte header,
followed by a few fields that are 8 bytes when
ANDROID_BINDER_IPC_32BIT=N.
This can cause alignment issues in a 64-bit kernel
with a 32-bit userspace, as on x86_32 an 8-byte primitive
may be aligned to a 4-byte address. Pad with a __u32
to fix this.
Signed-off-by: Martijn Coenen <maco@android.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | include/uapi/linux/android/binder.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/uapi/linux/android/binder.h b/include/uapi/linux/android/binder.h index 51f891fb1b18..7668b5791c91 100644 --- a/include/uapi/linux/android/binder.h +++ b/include/uapi/linux/android/binder.h @@ -132,6 +132,7 @@ enum { /* struct binder_fd_array_object - object describing an array of fds in a buffer * @hdr: common header structure + * @pad: padding to ensure correct alignment * @num_fds: number of file descriptors in the buffer * @parent: index in offset array to buffer holding the fd array * @parent_offset: start offset of fd array in the buffer @@ -152,6 +153,7 @@ enum { */ struct binder_fd_array_object { struct binder_object_header hdr; + __u32 pad; binder_size_t num_fds; binder_size_t parent; binder_size_t parent_offset; |