Messages in this thread | | | Date | Fri, 10 Aug 2012 10:53:09 +0530 | From | "Suzuki K. Poulose" <> | Subject | Re: [PATCH 3/5] uprobes: remove check for uprobe variable in handle_swbp() |
| |
On 08/08/2012 03:05 PM, Sebastian Andrzej Siewior wrote: > On 08/08/2012 11:10 AM, Suzuki K. Poulose wrote: >>> --- a/kernel/events/uprobes.c >>> +++ b/kernel/events/uprobes.c >>> @@ -1528,17 +1528,15 @@ cleanup_ret: >>> utask->active_uprobe = NULL; >>> utask->state = UTASK_RUNNING; >>> } >>> - if (uprobe) { >>> - if (!(uprobe->flags & UPROBE_SKIP_SSTEP)) >>> + if (!(uprobe->flags & UPROBE_SKIP_SSTEP)) >>> >> Shouldn't we check uprobe != NULL before we check the uprobe->flags ? >> i.e, shouldn't the above line be : >> >> if (uprobe && ! (uprobe->flags & UPROBE_SKIP_SSTEP)) ? > > The function starts like this: > > if (!uprobe) { > if (is_swbp > 0) { > send_sig(SIGTRAP, current, 0); > } else { > instruction_pointer_set(regs, bp_vaddr); > } > return; > } > > Which makes uprobe != NULL by the time we get there, no? > My bad, was looking at an older version of the function. Also, the removal of the if (uprobe), check triggered the above question.
Thanks Suzuki
| |