From: Brian Date: Thu, 23 Aug 2007 20:39:51 +0000 (+0100) Subject: check for null ptr in xm_buffer_unreference() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ac8249d0ed382c547a2219449fa6dea328b19193;p=mesa.git check for null ptr in xm_buffer_unreference() --- diff --git a/src/mesa/drivers/x11/xm_softpipe.c b/src/mesa/drivers/x11/xm_softpipe.c index 432f306e94e..ff33ad78509 100644 --- a/src/mesa/drivers/x11/xm_softpipe.c +++ b/src/mesa/drivers/x11/xm_softpipe.c @@ -112,17 +112,19 @@ xm_buffer_reference(struct pipe_winsys *pws, struct pipe_buffer_handle *buf) static void xm_buffer_unreference(struct pipe_winsys *pws, struct pipe_buffer_handle **buf) { - struct xm_buffer *xm_buf = xm_bo(*buf); - xm_buf->refcount--; - assert(xm_buf->refcount >= 0); - if (xm_buf->refcount == 0) { - if (xm_buf->data) { - free(xm_buf->data); - xm_buf->data = NULL; + if (*buf) { + struct xm_buffer *xm_buf = xm_bo(*buf); + xm_buf->refcount--; + assert(xm_buf->refcount >= 0); + if (xm_buf->refcount == 0) { + if (xm_buf->data) { + free(xm_buf->data); + xm_buf->data = NULL; + } + free(xm_buf); } - free(xm_buf); + *buf = NULL; } - *buf = NULL; } static void