[Libva] [PATCH V1][libva] fix check NULL issues reported by Klockwork

Zhao Yakui yakui.zhao at intel.com
Mon May 23 06:51:20 UTC 2016


On 05/23/2016 01:46 PM, peng.chen wrote:
> Signed-off-by: peng.chen<peng.c.chen at intel.com>
> ---
>   va/va_trace.c | 16 ++++++++++++++--
>   1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/va/va_trace.c b/va/va_trace.c
> index 994422e..398ca1a 100644
> --- a/va/va_trace.c
> +++ b/va/va_trace.c
> @@ -501,7 +501,10 @@ static void FILE_NAME_SUFFIX(
>       int tmp = strnlen(env_value, max_size);
>       int left = max_size - tmp;
>       struct timeval tv;
> -    int size = strlen(suffix_str);
> +    int size = 0;
> +
> +    if(suffix_str)
> +        strlen(suffix_str);
>
>       if(left<  (size + 8 + 10))
>           return;
> @@ -735,8 +738,14 @@ void va_TraceInit(VADisplay dpy)
>       struct va_trace *pva_trace = calloc(sizeof(struct va_trace), 1);
>       struct trace_context *trace_ctx = calloc(sizeof(struct trace_context), 1);
>
> -    if (pva_trace == NULL || trace_ctx == NULL)
> +    if (pva_trace == NULL || trace_ctx == NULL) {
> +        if(pva_trace)
> +            free(pva_trace);
> +
> +        if(trace_ctx)
> +            free(trace_ctx);
>           return;
> +    }
>
>       if (va_parseConfig("LIBVA_TRACE",&env_value[0]) == 0) {
>           pva_trace->fn_log_env = strdup(env_value);
> @@ -1474,6 +1483,9 @@ void va_TraceCreateBuffer (
>       VABufferID *buf_id		/* out */
>   )
>   {
> +    if(!buf_id)
> +        return;

Maybe the zero buf_id is the valid buffer id.
The check should be changed as the following:
        if (buf_id == VA_INVALID_ID)
            return

> +
>       DPY2TRACECTX(dpy, context, VA_INVALID_ID);
>
>       add_trace_buf_info(pva_trace, context, *buf_id);



More information about the Libva mailing list