This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] uprobes: Fix limiting un-nested return probes


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]