Mesa (master): gallium/u_slab: fix possible crash in util_slab_destroy

Marek Olšák mareko at kemper.freedesktop.org
Thu Feb 23 20:52:56 UTC 2012


Module: Mesa
Branch: master
Commit: 99d5c1a13b97b9133a166c00c9fba1bec5f4bd9e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=99d5c1a13b97b9133a166c00c9fba1bec5f4bd9e

Author: Marek Olšák <maraeo at gmail.com>
Date:   Tue Feb 21 18:40:11 2012 +0100

gallium/u_slab: fix possible crash in util_slab_destroy

It may happen if util_slab_create has not been called.

Reviewed-by: Jerome Glisse <jglisse at redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

---

 src/gallium/auxiliary/util/u_slab.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_slab.c b/src/gallium/auxiliary/util/u_slab.c
index 21bf2d7..f9f5ef6 100644
--- a/src/gallium/auxiliary/util/u_slab.c
+++ b/src/gallium/auxiliary/util/u_slab.c
@@ -160,9 +160,11 @@ void util_slab_destroy(struct util_slab_mempool *pool)
 {
    struct util_slab_page *page, *temp;
 
-   foreach_s(page, temp, &pool->list) {
-      remove_from_list(page);
-      FREE(page);
+   if (pool->list.next) {
+      foreach_s(page, temp, &pool->list) {
+         remove_from_list(page);
+         FREE(page);
+      }
    }
 
    pipe_mutex_destroy(pool->mutex);




More information about the mesa-commit mailing list