[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