[PATCH] uprobes: Fix limiting un-nested return probes
Hemant
hkshaw@linux.vnet.ibm.com
Thu Sep 12 04:49:00 GMT 2013
Hi Oleg,
On 09/09/2013 08:25 PM, Oleg Nesterov wrote:
> On 09/09, Anton Arapov wrote:
>> On Sun, Sep 08, 2013 at 06:32:32PM +0200, Oleg Nesterov wrote:
>>> Not sure, but I can be easily wrong... afaics we need something like below, no?
>>> Anton?
>> Oleg, your guess is correct.
>>
>> My original intention was to limit by depth the chained only probes. But later,
>> after your review, we've decided /based on safety concerns/ to limit it hard.
> Chained or not, we allocate return_instance every time, so we certainly
> need to account to limit the depth unconditionally. Unless we reuse the
> same return_instance if chained, but this is another story.
Hmm, agreed. Thanks for the description.
>
>> The decrement 'utask->depth--;' in my own tree is above the 'if (!chained)'
>> check. I think it got mangled somehow when I rebased the code before I sent it
>> to lkml.
> OK, thanks, I'll write the changelog and re-send the patch below.
>
>> Anton.
>>
>>
>>> Oleg.
>>>
>>> --- x/kernel/events/uprobes.c
>>> +++ x/kernel/events/uprobes.c
>>> @@ -1682,12 +1682,10 @@ static bool handle_trampoline(struct pt_
>>> tmp = ri;
>>> ri = ri->next;
>>> kfree(tmp);
>>> + utask->depth--;
>>>
>>> if (!chained)
>>> break;
>>> -
>>> - utask->depth--;
>>> -
>>> BUG_ON(!ri);
>>> }
--
Thanks
Hemant
More information about the Systemtap
mailing list