* [PATCH] ANDROID: binder: re-order some conditions
@ 2018-03-29 9:14 Dan Carpenter
2018-03-29 12:19 ` Martijn Coenen
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2018-03-29 9:14 UTC (permalink / raw)
To: kernel-janitors
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>
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index 764b63a5aade..00322b146469 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -2058,8 +2058,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;
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] ANDROID: binder: re-order some conditions
2018-03-29 9:14 [PATCH] ANDROID: binder: re-order some conditions Dan Carpenter
@ 2018-03-29 12:19 ` Martijn Coenen
0 siblings, 0 replies; 2+ messages in thread
From: Martijn Coenen @ 2018-03-29 12:19 UTC (permalink / raw)
To: kernel-janitors
On Thu, Mar 29, 2018 at 11:14 AM, Dan Carpenter
<dan.carpenter@oracle.com> wrote:
> 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>
>
> diff --git a/drivers/android/binder.c b/drivers/android/binder.c
> index 764b63a5aade..00322b146469 100644
> --- a/drivers/android/binder.c
> +++ b/drivers/android/binder.c
> @@ -2058,8 +2058,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;
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-03-29 12:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-29 9:14 [PATCH] ANDROID: binder: re-order some conditions Dan Carpenter
2018-03-29 12:19 ` Martijn Coenen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox