lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 06 Mar 2012 19:30:25 -0500 From: KOSAKI Motohiro <kosaki.motohiro@...il.com> To: Mikulas Patocka <mpatocka@...hat.com> CC: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>, KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>, Hugh Dickins <hughd@...gle.com>, Peter Zijlstra <a.p.zijlstra@...llo.nl>, Shaohua Li <shaohua.li@...el.com>, Michal Hocko <mhocko@...e.cz>, Andrew Morton <akpm@...ux-foundation.org>, Linus Torvalds <torvalds@...ux-foundation.org>, linux-kernel@...r.kernel.org, kosaki.motohiro@...il.com Subject: Re: [PATCH] fix bug introduced in "mm: simplify find_vma_prev()" (3/4/12 7:52 PM), Mikulas Patocka wrote: > Hi > > This patch fixes a bug introduced in "mm: simplify find_vma_prev()". You > can apply this, or alternatively revert the original patch. > > Mikulas > > --- > > mm: fix find_vma_prev > > The commit mm: simplify find_vma_prev() > [6bd4837de96e7d9f9bf33e59117c24fc230862ac] broke memory management on PA-RISC. > > After application of the patch, programs that allocate big arrays on the stack > crash with segfault, for example, this will crash if compiled without > optimization: > int main() > { > char array[200000]; > array[199999] = 0; > return 0; > } > > The reason is that PA-RISC has up-growing stack and the stack is usually the > last memory area. In the above example, a page fault happens above the stack. > > Previously, if we passed too high address to find_vma_prev, it returned NULL > and stored the last VMA in *pprev. After "simplify find_vma_prev" change, it > stores NULL in *pprev. Consequently, the stack area is not found and it is > not expanded, as it used to be before the change. > > This patch restores the old behavior and makes it return the last VMA in *pprev > if the requested address is higher than address of any other VMA. > > Signed-off-by: Mikulas Patocka<mpatocka@...hat.com> Acked-by: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com> I prefer to remove find_vma_prev() eventually. but this is good short term solution. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists