Re: [PATCH 6/6] mqueue: fix mq_open() file descriptor leak on user-space processes

From: AmÃrico Wang
Date: Wed Feb 24 2010 - 23:26:11 EST


On Thu, Feb 25, 2010 at 12:00 PM, Xiaotian Feng <xtfeng@xxxxxxxxx> wrote:
> 2010/2/25 AmÃrico Wang <xiyou.wangcong@xxxxxxxxx>:
>> On Tue, Feb 23, 2010 at 3:04 PM, Andrà Goddard Rosa
>> <andre.goddard@xxxxxxxxx> wrote:
>>> It can be triggered by the following test program:
>>>
>>
>> <snip>
>>
>>>
>>> When not running valgrind, user-space program segfaults trying to execute
>>> strerror(errno). With valgrind, it executes successfully and prints the
>>> 5 open files: stdin, stdout, stderr, pipe[0] and pipe[1].
>>>
>>> Signed-off-by: Andrà Goddard Rosa <andre.goddard@xxxxxxxxx>
>>> ---
>>
>> The code has more than just this problem, could you please try
>> my patch below?
>>
>> Thanks.
>>
>> ---------------------------->
>>
>> Clean up the failure path of sys_mq_open().
>>
>> Reorder the goto labels;
>> Rename 'upsem' to 'upunlock';
>> Remove some unused labels;
>> Fix some wrong goto path.
>>
>
> I think it's wrong to move dput after mntput

Oh, this is to say mntget() should be called before lookup_one_len(),
the original code seems wrong again...
--
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/