diff options
| author | Dan Carpenter <dan.carpenter@oracle.com> | 2018-03-29 12:14:40 +0300 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2018-11-29 10:59:46 +0100 |
| commit | 05a3a630ec614783a8be1a477f70bce20f2d251e (patch) | |
| tree | bc6c6b11b42177115ba592ef30f2a3a469a1fe18 /drivers/android | |
| parent | b28bb9199f8bcd497df42b79474dd2ced6993cae (diff) | |
UPSTREAM: ANDROID: binder: re-order some conditions
It doesn't make any difference to runtime but I've switched these two
checks to make my static checker happy.
The problem is that "buffer->data_size" is user controlled and if it's
less than "sizeo(*hdr)" then that means "offset" can be more than
"buffer->data_size". It's just cleaner to check it in the other order.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Martijn Coenen <maco@android.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 361f2ddbb0c9f9b4f336025a7bd0212cea4a34f0)
Change-Id: I098d525ba63d125caa9840e6e1d5004bf70edc3c
Diffstat (limited to 'drivers/android')
| -rw-r--r-- | drivers/android/binder.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/android/binder.c b/drivers/android/binder.c index fa9fe4d14..283cd46af 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -2132,8 +2132,8 @@ static size_t binder_validate_object(struct binder_buffer *buffer, u64 offset) struct binder_object_header *hdr; size_t object_size = 0; - if (offset > buffer->data_size - sizeof(*hdr) || - buffer->data_size < sizeof(*hdr) || + if (buffer->data_size < sizeof(*hdr) || + offset > buffer->data_size - sizeof(*hdr) || !IS_ALIGNED(offset, sizeof(u32))) return 0; |
