[Mesa-dev] [PATCH 04/12] gallium/u_slab: fix possible crash in util_slab_destroy

Marek Olšák maraeo at gmail.com
Tue Feb 21 16:55:55 PST 2012


It may happen if util_slab_create has not been called.
---
 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);
-- 
1.7.5.4



More information about the mesa-dev mailing list