This is the mail archive of the
systemtap@sources.redhat.com
mailing list for the systemtap project.
Re: kprobe_handler should check pre_handler function
- From: Ananth N Mavinakayanahalli <ananth at in dot ibm dot com>
- To: William Cohen <wcohen at redhat dot com>
- Cc: SystemTAP <systemtap at sources dot redhat dot com>, akpm at osdl dot org, prasanna at in dot ibm dot com, linux-kernel at vger dot kernel dot org, davem at davemloft dot net
- Date: Tue, 29 Mar 2005 18:59:52 -0500
- Subject: Re: kprobe_handler should check pre_handler function
- References: <424872C8.6080207@redhat.com> <20050329023408.GA4847@in.ibm.com> <4249A9EA.10901@redhat.com>
- Reply-to: ananth at in dot ibm dot com
On Tue, Mar 29, 2005 at 02:18:02PM -0500, William Cohen wrote:
> Ananth N Mavinakayanahalli wrote:
> >On Mon, Mar 28, 2005 at 04:10:32PM -0500, William Cohen wrote:
> >
> >Hi Will,
> >
> >
> >>I found kprobes expects there to be a pre_handler function in the
> >>structure. I was writing a probe that only needed a post_handler
> >>function, no pre_handler function. The probe was tracking the
> >>destinations of indirect calls and jumps, the probe needs to fire after
> >>the instruction single steps to get the target address. The probe
> >>crashed the machine because arch/i386/kernel/kprobe.c:kprobe_handler()
> >>blindly calls p->pre_handler(). There should be a check to verify that
> >>the pointer is non-null. There are cases where the pre_handler is not
> >>needed and it would make sense to set it to NULL. Thus, a check should
> >>be done for pre_handler like post_handler and fault_handler.
> >
> >
> >You are right. The check for pre_handler is needed and here is a patch
> >against 2.6.12-rc1-mm3 that does this.
> >
> >Thanks,
> >Ananth
>
> Ananth,
>
> Thanks. It looks like it addresses the problem. Could you see about
> getting this patch in the upstream kernel?
Will,
I think Andrew now has this in his patchset. It will probably be in the
next -mm.
Thanks,
Ananth