Re: [PATCH v1] perf parse-events: Avoid erange from hex numbers

From: Namhyung Kim
Date: Thu Oct 12 2023 - 13:20:55 EST


On Fri, Oct 6, 2023 at 12:05 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> Hi Ian,
>
> On Fri, Oct 6, 2023 at 8:30 AM Ian Rogers <irogers@xxxxxxxxxx> wrote:
> >
> > On Thu, Sep 7, 2023 at 2:05 PM Ian Rogers <irogers@xxxxxxxxxx> wrote:
> > >
> > > We specify that a "num_hex" comprises 1 or more digits, however, that
> > > allows strtoull to fail with ERANGE. Limit the number of hex digits to
> > > being between 1 and 16.
> > >
> > > Before:
> > > ```
> > > $ perf stat -e 'cpu/rE7574c47490475745/' true
> > > perf: util/parse-events.c:215: fix_raw: Assertion `errno == 0' failed.
> > > Aborted (core dumped)
> > > ```
> > >
> > > After:
> > > ```
> > > $ perf stat -e 'cpu/rE7574c47490475745/' true
> > > event syntax error: 'cpu/rE7574c47490475745/'
> > > \___ Bad event or PMU
> > >
> > > Unable to find PMU or event on a PMU of 'cpu'
> > >
> > > Initial error:
> > > event syntax error: 'cpu/rE7574c47490475745/'
> > > \___ unknown term 'rE7574c47490475745' for pmu 'cpu'
> > >
> > > valid terms: event,pc,edge,offcore_rsp,ldlat,inv,umask,frontend,cmask,config,config1,config2,config3,name,period,percore,metric-id
> > > Run 'perf list' for a list of valid events
> > >
> > > Usage: perf stat [<options>] [<command>]
> > >
> > > -e, --event <event> event selector. use 'perf list' to list available events
> > > ```
> > >
> > > Issue found through fuzz testing.
> > >
> > > Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
>
> Acked-by: Namhyung Kim <namhyung@xxxxxxxxxx>

Applied to perf-tools-next, thanks!