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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <19618.1185971347@redhat.com>
Date:	Wed, 01 Aug 2007 13:29:07 +0100
From:	David Howells <dhowells@...hat.com>
To:	Bernd Schmidt <bernds_cb1@...nline.de>
Cc:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
	"Wu, Bryan" <Bryan.Wu@...log.com>
Subject: Re: [PATCH, RFD]: Unbreak no-mmu mmap

Bernd Schmidt <bernds_cb1@...nline.de> wrote:
> 1. munmap can now unmap subparts of previously allocated blocks.  This
>    makes behaviour more consistent with mmu Linux, and allows us to
>    simplify and speed up the uClibc malloc implementation.

There's a problem with your alteration to do_munmap() to split VMAs.  What
happens if an area of a file is mmap'd twice in a process?  Consider the
situation where two independent parts of a process (say two different
libraries) each map an area of the same file.  do_mmap_pgoff() will attempt to
share these regions if it can.

This can lead to you splitting the wrong VMA when someone comes along later to 
do an apparent partial unmap.

I'm currently working on something to give each NOMMU process its own list
VMAs rather than holding them in common.  This is so that I can add VMA
reservation (and more to the point, unreservation) which'll make some stuff
easier.

David
-
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ