Re: [PATCH] kasan/quarantine: fix NULL pointer dereference bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 07/01/2016 01:55 PM, Kuthonuzo Luruo wrote:
> On Fri, Jul 1, 2016 at 1:41 PM, Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> wrote:
>>
>>
>> On 07/01/2016 10:53 AM, js1304@xxxxxxxxx wrote:
>>> From: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
>>>
>>> If we move an item on qlist's tail, we need to update qlist's tail
>>> properly. curr->next can be NULL since it is singly linked list
>>> so it is invalid for tail. curr is scheduled to be moved so
>>> using prev would be correct.
>>
>> Hmm.. prev may be the element that moved in 'to' list. We need to assign the last element
>> from which is in ther 'from' list.
> 
> something like this should handle qlink == head == tail:
> 
> --- a/mm/kasan/quarantine.c
> +++ b/mm/kasan/quarantine.c
> @@ -251,11 +251,11 @@ static void qlist_move_cache(struct qlist_head *from,
>                 if (obj_cache == cache) {
>                         if (unlikely(from->head == qlink)) {
>                                 from->head = curr->next;
> -                               prev = curr;
> +                               prev = from->head;

This will break 'to' list.

>                         } else
>                                 prev->next = curr->next;
>                         if (unlikely(from->tail == qlink))
> -                               from->tail = curr->next;
> +                               from->tail = prev;
>                         from->bytes -= cache->size;
>                         qlist_put(to, qlink, cache->size);
>                 } else {
> 
>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]