Messages in this thread | | | From | Namhyung Kim <> | Subject | Re: [PATCH 3/3] tracing: Verify target file before registering a uprobe event | Date | Fri, 04 Jan 2013 13:30:01 +0900 |
| |
Hi, Steve.
On Wed, 02 Jan 2013 17:50:38 -0500, Steven Rostedt wrote: > From: Jovi Zhang <bookjovi@gmail.com> > > Without this patch, we can register a uprobe event for a directory. > Enabling such a uprobe event would fail anyway . > > Example: > $ echo 'p /bin:0x4245c0' > /sys/kernel/debug/tracing/uprobe_events > > However dirctories cannot be valid targets for uprobe. > Hence verify if the target is a regular file during the probe > registration. > > Signed-off-by: Jovi Zhang <bookjovi@gmail.com> > Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com> > Signed-off-by: Steven Rostedt <rostedt@goodmis.org> > --- > kernel/trace/trace_uprobe.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c > index 03003cd..0815f25 100644 > --- a/kernel/trace/trace_uprobe.c > +++ b/kernel/trace/trace_uprobe.c > @@ -257,6 +257,10 @@ static int create_trace_uprobe(int argc, char **argv) > goto fail_address_parse; > > inode = igrab(path.dentry->d_inode); > + if (!S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode)) {
Doesn't !S_ISREG() include S_ISDIR() case too?
Anyway I can see an additional whitespace in front of the "if".
Thanks, Namhyung
> + ret = -EINVAL; > + goto fail_address_parse; > + } > > argc -= 2; > argv += 2; > @@ -356,7 +360,7 @@ fail_address_parse: > if (inode) > iput(inode); > > - pr_info("Failed to parse address.\n"); > + pr_info("Failed to parse address or file.\n"); > > return ret; > }
| |