Messages in this thread | | | Date | Wed, 9 Sep 2015 12:40:13 +0300 | Subject | Re: [PATCH 2/2] kasan: Fix a type conversion error | From | Andrey Ryabinin <> |
| |
2015-09-09 6:59 GMT+03:00 Wang Long <long.wanglong@huawei.com>: > The current KASAN code can find the following out-of-bounds > bugs: > char *ptr; > ptr = kmalloc(8, GFP_KERNEL); > memset(ptr+7, 0, 2); > > the cause of the problem is the type conversion error in > *memory_is_poisoned_n* function. So this patch fix that. > > Signed-off-by: Wang Long <long.wanglong@huawei.com> > --- > mm/kasan/kasan.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c > index 7b28e9c..5d65d06 100644 > --- a/mm/kasan/kasan.c > +++ b/mm/kasan/kasan.c > @@ -204,7 +204,7 @@ static __always_inline bool memory_is_poisoned_n(unsigned long addr, > s8 *last_shadow = (s8 *)kasan_mem_to_shadow((void *)last_byte); > > if (unlikely(ret != (unsigned long)last_shadow || > - ((last_byte & KASAN_SHADOW_MASK) >= *last_shadow))) > + ((long)(last_byte & KASAN_SHADOW_MASK) >= *last_shadow)))
Is there any problem if we just define last_byte as 'long' instead of 'unsigned long' ?
> return true; > } > return false; > -- > 1.8.3.4 >
| |