Skip to contentSkip to conversation

drm/i915: use after free on error path

PATCH In review Dan Carpenter 2 participants 2 messages Jul 19, 2013

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 2/2 drm/i915: use after free on error path

i915_gem_vma_destroy() frees its argument so we have to move the drm_mm_remove_node() call up a few lines.

drivers/gpu/drm/i915/i915_gem.c +1 -1
index 9a9a77a..f347ad5 100644
@@ -3161,9 +3161,9 @@ search_free:
 	return 0;
 
 err_out:
+	drm_mm_remove_node(&vma->node);
 	i915_gem_vma_destroy(vma);
 	i915_gem_object_unpin_pages(obj);
-	drm_mm_remove_node(&vma->node);
 	return ret;
 }
 
#1 lore raw
Quoted 4 lines · Dan Carpenter

i915_gem_vma_destroy() frees its argument so we have to move the drm_mm_remove_node() call up a few lines.

Both applied, thanks for the patches.
-Daniel

Quoted 16 lines
drivers/gpu/drm/i915/i915_gem.c +1 -1
index 9a9a77a..f347ad5 100644
@@ -3161,9 +3161,9 @@ search_free:
 	return 0;
 
 err_out:
+	drm_mm_remove_node(&vma->node);
 	i915_gem_vma_destroy(vma);
 	i915_gem_object_unpin_pages(obj);
-	drm_mm_remove_node(&vma->node);
 	return ret;
 }
 
Signature · 3 lines
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch