lkml.org 
[lkml]   [2013]   [Dec]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v1 9/9] staging: android: binder: Add binder compat layer
From
On Wed, Dec 4, 2013 at 3:21 PM, One Thousand Gnomes
<gnomes@lxorguk.ukuu.org.uk> wrote:
> On Wed, 4 Dec 2013 10:35:54 -0800
> Greg KH <gregkh@linuxfoundation.org> wrote:
>
>> On Wed, Dec 04, 2013 at 06:09:41PM +0000, Serban Constantinescu wrote:
>> > +#define size_helper(x) ({ \
>> > + size_t __size; \
>> > + if (!is_compat_task()) \
>> > + __size = sizeof(x); \
>> > + else if (sizeof(x) == sizeof(struct flat_binder_object)) \
>> > + __size = sizeof(struct compat_flat_binder_object); \
>> > + else if (sizeof(x) == sizeof(struct binder_transaction_data)) \
>> > + __size = sizeof(struct compat_binder_transaction_data); \
>> > + else if (sizeof(x) == sizeof(size_t)) \
>> > + __size = sizeof(compat_size_t); \
>> > + else \
>> > + BUG(); \
>> > + __size; \
>> > + })
>>
>> Ick.
>>
>> First off, no driver should ever be able to crash the kernel, which you
>> just did.
>
> And which would appear to mean that this code hasn't actually been
> tested - at least not properly with error cases ?
>
> You talk about type safety too but your code is already full of
> "put_user(node->ptr, (void * __user *)ptr))"

None of this (the patch series or the original code) is mine. My
question was more of a general one on designing ioctls, as well as
concerns with changing the existing 32-bit api.


\
 
 \ /
  Last update: 2013-12-05 01:01    [W:0.065 / U:1.628 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site