Re: [PATCH] kernel/workqueue.c: kfree issue, need check flag 'WQ_UNBOUND'when processing failure.

From: Chen Gang
Date: Wed May 15 2013 - 22:05:50 EST


On 05/16/2013 05:11 AM, Tejun Heo wrote:
> On Wed, May 15, 2013 at 09:34:36AM +0800, Chen Gang wrote:
>> On 05/14/2013 11:20 PM, Tejun Heo wrote:
>>> On Tue, May 14, 2013 at 09:06:40PM +0800, Chen Gang wrote:
>>>> err_destroy:
>>>> destroy_workqueue(wq);
>>>> + if (flags & WQ_UNBOUND) {
>>>> +err_free_wq:
>>>> + free_workqueue_attrs(wq->unbound_attrs);
>>>> + kfree(wq);
>>>> + }
>>>
>>> Doesn't the above make the code free wq twice on after err_destroy?
>>>
>>
>> Oh, it is my fault. I did not see the put_pwq_unlocked() in details,
>> next I should read the code carefully.
>
> We're still leaking unbound_attrs in the failure path, right? We can
> probably just add unconditional free_workqueue_attrs() in err_free_wq?
>

It seems that it already done, the related patch is provided by you :
"6029a91 workqueue: add workqueue->unbound_attrs".

Please check.


Thanks.
--
Chen Gang

Asianux Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/