[Mesa-dev] [PATCH] svga: add some trivial null pointer checks

eocallaghan at alterapraxis.com eocallaghan at alterapraxis.com
Thu Apr 7 00:26:44 UTC 2016


Reviewed-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>

+1 for defensive programming.

On 2016-04-07 06:00, Brian Paul wrote:
> These small mallocs will probably never fail, but static analysis tools
> may complain about the missing checks.
> ---
>  src/gallium/drivers/svga/svga_pipe_blend.c        | 3 +++
>  src/gallium/drivers/svga/svga_pipe_depthstencil.c | 3 +++
>  src/gallium/drivers/svga/svga_pipe_rasterizer.c   | 3 +++
>  3 files changed, 9 insertions(+)
> 
> diff --git a/src/gallium/drivers/svga/svga_pipe_blend.c
> b/src/gallium/drivers/svga/svga_pipe_blend.c
> index 0af80cd..0ba9313 100644
> --- a/src/gallium/drivers/svga/svga_pipe_blend.c
> +++ b/src/gallium/drivers/svga/svga_pipe_blend.c
> @@ -142,6 +142,9 @@ svga_create_blend_state(struct pipe_context *pipe,
>     struct svga_blend_state *blend = CALLOC_STRUCT( svga_blend_state );
>     unsigned i;
> 
> +   if (!blend)
> +      return NULL;
> +
>     /* Fill in the per-rendertarget blend state.  We currently only
>      * support independent blend enable and colormask per render 
> target.
>      */
> diff --git a/src/gallium/drivers/svga/svga_pipe_depthstencil.c
> b/src/gallium/drivers/svga/svga_pipe_depthstencil.c
> index d84ed1d..83fcdc3 100644
> --- a/src/gallium/drivers/svga/svga_pipe_depthstencil.c
> +++ b/src/gallium/drivers/svga/svga_pipe_depthstencil.c
> @@ -134,6 +134,9 @@ svga_create_depth_stencil_state(struct pipe_context 
> *pipe,
>     struct svga_context *svga = svga_context(pipe);
>     struct svga_depth_stencil_state *ds = CALLOC_STRUCT(
> svga_depth_stencil_state );
> 
> +   if (!ds)
> +      return NULL;
> +
>     /* Don't try to figure out CW/CCW correspondence with
>      * stencil[0]/[1] at this point.  Presumably this can change as
>      * back/front face are modified.
> diff --git a/src/gallium/drivers/svga/svga_pipe_rasterizer.c
> b/src/gallium/drivers/svga/svga_pipe_rasterizer.c
> index 8e0db53..d397c95 100644
> --- a/src/gallium/drivers/svga/svga_pipe_rasterizer.c
> +++ b/src/gallium/drivers/svga/svga_pipe_rasterizer.c
> @@ -161,6 +161,9 @@ svga_create_rasterizer_state(struct pipe_context 
> *pipe,
>     struct svga_rasterizer_state *rast = CALLOC_STRUCT( 
> svga_rasterizer_state );
>     struct svga_screen *screen = svga_screen(pipe->screen);
> 
> +   if (!rast)
> +      return NULL;
> +
>     /* need this for draw module. */
>     rast->templ = *templ;



More information about the mesa-dev mailing list