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, 11 Feb 2020 15:13:50 -0800 From: Daniel Colascione <dancol@...gle.com> To: Brian Geffon <bgeffon@...gle.com> Cc: Andrew Morton <akpm@...ux-foundation.org>, "Michael S . Tsirkin" <mst@...hat.com>, Arnd Bergmann <arnd@...db.de>, linux-kernel <linux-kernel@...r.kernel.org>, linux-mm <linux-mm@...ck.org>, Linux API <linux-api@...r.kernel.org>, Andy Lutomirski <luto@...capital.net>, Will Deacon <will@...nel.org>, Andrea Arcangeli <aarcange@...hat.com>, Sonny Rao <sonnyrao@...gle.com>, Minchan Kim <minchan@...nel.org>, Joel Fernandes <joel@...lfernandes.org>, Yu Zhao <yuzhao@...gle.com>, Jesse Barnes <jsbarnes@...gle.com>, Nathan Chancellor <natechancellor@...il.com>, Florian Weimer <fweimer@...hat.com>, "Kirill A . Shutemov" <kirill@...temov.name> Subject: Re: [PATCH v4] mm: Add MREMAP_DONTUNMAP to mremap(). On Fri, Feb 7, 2020 at 12:19 PM Brian Geffon <bgeffon@...gle.com> wrote: > > When remapping an anonymous, private mapping, if MREMAP_DONTUNMAP is > set, the source mapping will not be removed. Instead it will be > cleared as if a brand new anonymous, private mapping had been created > atomically as part of the mremap() call. The left-behind mapping (the "as if a brand new anonymous, private mapping" map) is immediately writable, right? If so, we need to account the additional commit charge. What about making the left-behind mapping PROT_NONE? This way, we'll still solve the address-space race in Lokesh's use case (because even a PROT_NONE mapping reserves address space) but won't incur any additional commit until someone calls mprotect(PROT_WRITE) on the left-behind mapping. Imagine having two equal-sized mappings and wanting to use mremap() to swap them: you can implement this swap by carving off a third region of address space and making two mremap() calls. But without the PROT_NONE, you pay additional commit for that third region even if you don't need it.
Powered by blists - more mailing lists