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

From: Steven Rostedt
Date: Mon Oct 09 2017 - 18:24:40 EST


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?

-- Steve

> +
> list_add_tail(&option->list, &handle->options);
>
> return option;