[Mesa-dev] [PATCH] glx: Fix use-before-null-check in dri2InvalidateBuffers().

Matt Turner mattst88 at gmail.com
Wed Jun 1 13:51:13 PDT 2011


On Wed, Jun 1, 2011 at 4:42 PM, Eric Anholt <eric at anholt.net> wrote:
> The compiler used our dereference here to skip the NULL check below.
> Fixes window resize in "jconsole -J-Dsun.java2d.opengl=True" under
> OpenJDK 6.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=37766
> ---
>  src/glx/dri2_glx.c |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
> index b9f6f7f..69b47ae 100644
> --- a/src/glx/dri2_glx.c
> +++ b/src/glx/dri2_glx.c
> @@ -675,9 +675,14 @@ dri2InvalidateBuffers(Display *dpy, XID drawable)
>  {
>    __GLXDRIdrawable *pdraw =
>       dri2GetGlxDrawableFromXDrawableId(dpy, drawable);
> -   struct dri2_screen *psc = (struct dri2_screen *) pdraw->psc;
> +   struct dri2_screen *psc;
>    struct dri2_drawable *pdp = (struct dri2_drawable *) pdraw;
>
> +   if (!pdraw)
> +      return;
> +
> +   psc = (struct dri2_screen *) pdraw->psc;
> +
>  #if __DRI2_FLUSH_VERSION >= 3
>    if (pdraw && psc->f && psc->f->base.version >= 3 && psc->f->invalidate)
>        psc->f->invalidate(pdp->driDrawable);
> --
> 1.7.5.1

Reviewed-by: Matt Turner <mattst88 at gmail.com>

Relevant: http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html


More information about the mesa-dev mailing list