Parcourir la source

staging: zcache: fix memory leak

obj is not freed if __get_free_page() failed.

Signed-off-by: Vasiliy Kulikov <segoon@openwall.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Vasiliy Kulikov il y a 14 ans
Parent
commit
69648bed53
1 fichiers modifiés avec 1 ajouts et 0 suppressions
  1. 1 0
      drivers/staging/zcache/zcache.c

+ 1 - 0
drivers/staging/zcache/zcache.c

@@ -790,6 +790,7 @@ static int zcache_do_preload(struct tmem_pool *pool)
 	page = (void *)__get_free_page(ZCACHE_GFP_MASK);
 	if (unlikely(page == NULL)) {
 		zcache_failed_get_free_pages++;
+		kmem_cache_free(zcache_obj_cache, obj);
 		goto unlock_out;
 	}
 	preempt_disable();