Thread (6 messages) 6 messages, 4 authors, 2012-05-22

Re: [PATCH] hugetlb: fix resv_map leak in error path

From: Dave Hansen <hidden>
Date: 2012-05-22 21:01:17
Also in: lkml

On 05/22/2012 01:45 PM, Andrew Morton wrote:
On Mon, 21 May 2012 13:28:14 -0700
Dave Hansen [off-list ref] wrote:
quoted
When called for anonymous (non-shared) mappings,
hugetlb_reserve_pages() does a resv_map_alloc().  It depends on
code in hugetlbfs's vm_ops->close() to release that allocation.

However, in the mmap() failure path, we do a plain unmap_region()
without the remove_vma() which actually calls vm_ops->close().

This is a decent fix.  This leak could get reintroduced if
new code (say, after hugetlb_reserve_pages() in
hugetlbfs_file_mmap()) decides to return an error.  But, I think
it would have to unroll the reservation anyway.
How far back does this bug go?  The patch applies to 3.4 but gets
rejects in 3.3 and earlier.
commit 17c9d12e126cb0de8d535dc1908c4819d712bc68
Date:   Wed Feb 11 16:34:16 2009 +0000

So, ~2.6.30.

I don't think it existed before that.  The code was there, but the
ordering made it OK.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help