From 1a9e5bae109b476f9ee34975242c8938aaac4146 Mon Sep 17 00:00:00 2001 From: Thomas Hellstrom Date: Tue, 6 Jun 2006 17:46:17 +0000 Subject: Fix drm_remove_magic potential memory leak / corruption. Move drm authentication token hashing to new generic hash table implementation. --- linux-core/drm_drv.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'linux-core/drm_drv.c') diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c index 127e21e9..07f9952c 100644 --- a/linux-core/drm_drv.c +++ b/linux-core/drm_drv.c @@ -163,14 +163,12 @@ int drm_lastclose(drm_device_t * dev) dev->unique_len = 0; } - /* Clear pid list */ - for (i = 0; i < DRM_HASH_SIZE; i++) { - for (pt = dev->magiclist[i].head; pt; pt = next) { - next = pt->next; - drm_free(pt, sizeof(*pt), DRM_MEM_MAGIC); - } - dev->magiclist[i].head = dev->magiclist[i].tail = NULL; - } + list_for_each_entry_safe(pt, next, &dev->magicfree, head) { + list_del(&pt->head); + drm_ht_remove_item(&dev->magiclist, &pt->hash_item); + drm_free(pt, sizeof(*pt), DRM_MEM_MAGIC); + } + /* Clear AGP information */ if (drm_core_has_AGP(dev) && dev->agp) { -- cgit v1.2.3