From ac8249d0ed382c547a2219449fa6dea328b19193 Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 23 Aug 2007 21:39:51 +0100 Subject: check for null ptr in xm_buffer_unreference() --- src/mesa/drivers/x11/xm_softpipe.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/mesa') diff --git a/src/mesa/drivers/x11/xm_softpipe.c b/src/mesa/drivers/x11/xm_softpipe.c index 432f306e94..ff33ad7850 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 -- cgit v1.2.3