Re: [PATCH] trace-cmd: Don't SIGSEGV when event field formatcannot be parsed (v2).

From: Steven Rostedt
Date: Fri Jul 23 2010 - 11:10:49 EST


On Thu, 2010-07-22 at 14:05 -0700, David Daney wrote:
> >From the MIPS kernel we get things like:
>
> print fmt: "page=%p pfn=%lu order=%d migratetype=%d", REC->page, ({ struct page *__pg = (REC->page); int __sec = page_to_section(__pg); (unsigned long)(__pg - __section_mem_map_addr(__nr_to_section(__sec))); }), REC->order, REC->migratetype
>
> This cannot be parsed, leading to a NULL struct event_format* being
> passed to pevent_get_common_field_val, which produces a SIGSEGV. It
> would be good to get a parsable format from the kernel, but to
> remediate the problem for legacy kernels, we can just return an error
> indicator in this case. This allows some output from trace-cmd
> report, although perhaps with some missing data. But this is better
> than crashing.
>
> (v2): Do the check in all pevent_get_*
>
> Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx>

Applied, thanks David!

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/