Re: [PATCH 2/5] trace-cmd: Fix NULL pointer being passed to memcpy

From: Michael Sartain
Date: Mon Oct 09 2017 - 18:27:17 EST


On Mon, Oct 09, 2017 at 06:24:32PM -0400, Steven Rostedt wrote:
> On Sat, 12 Aug 2017 11:30:44 -0600
> Michael Sartain <mikesart@xxxxxxxxxxxx> wrote:
>
> > Signed-off-by: Michael Sartain <mikesart@xxxxxxxxxxxx>
> > ---
> > trace-output.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/trace-output.c b/trace-output.c
> > index bfe6331..84b21b0 100644
> > --- a/trace-output.c
> > +++ b/trace-output.c
> > @@ -929,7 +929,11 @@ tracecmd_add_option(struct tracecmd_output *handle,
> > free(option);
> > return NULL;
> > }
> > - memcpy(option->data, data, size);
> > +
> > + /* Some IDs (like TRACECMD_OPTION_TRACECLOCK) pass NULL data */
> > + if (data)
> > + memcpy(option->data, data, size);
>
> Is this a problem, as when this happens, size should be zero. Does it
> crash with data=NULL and size=0, or have you seen size not be zero?

I got an ASAN warning, but you are correct - the size was 0 and it did
not crash.