delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2022/07/04/04:20:55

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C9EC83856DEA
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1656922854;
bh=mmfVTs28g3Wp8EDgqhlfl5hdwmq5hQ8RaiNueRsRYB4=;
h=Date:From:To:Subject:References:In-Reply-To:List-Id:
List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:
Reply-To:From;
b=s1zyFNuMGixTjG5deSjtj31LeOdL+W7AjDdPT5l24hfeWJ9O003ErlgRb+DBiXRsT
xDNE5D7EJbTnIuCLxHQ8KyYfffhD3F/qs7dkzmyKPjzKm8e7fp/MvpNzzQMYA4ETFN
lOd2TzREAqsmCc7P8FXeD+XaDSSlP+qFkiGRUJhc=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 826193856DFD
Authentication-Results: sourceware.org;
dmarc=fail (p=none dis=none) header.from=cygwin.com
Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=cygwin.com
Date: Mon, 4 Jul 2022 10:19:43 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: mmap failing with MAP_FIXED
Message-ID: <YsKin3kIuaUsmJXE@calimero.vinschen.de>
Mail-Followup-To: cygwin AT cygwin DOT com
References: <000001d88d68$4d5a7a40$e80f6ec0$@cl.cam.ac.uk>
MIME-Version: 1.0
In-Reply-To: <000001d88d68$4d5a7a40$e80f6ec0$@cl.cam.ac.uk>
X-Provags-ID: V03:K1:PzlB+wfoU/VPi+/SvB91rlsTZNuN3XJ/glpZ0zNxUWog5qpGhdY
72vFv9FsDs/PoFNXvS5PbLlpeaaufVrWGRyjf0vBfNsfrktUHpXGwho6Wru8DaqvmUkMyEE
SMkjytLzjt1N2eKbL5Na378ATJV32+R8ZtoaDHDb/1qVQoBUTMojKxRD/WgeCEz5IUEPA6c
o86+jkO8gr9Z8HP6UjfXQ==
X-UI-Out-Filterresults: notjunk:1;V03:K0:6sJsmhK2amg=:c8DabZaqf90L9g6wKAJv/1
KCMqqWHPpBC/MtECYHKttSlcnxbLz0Qzx14tzGTo4+ziBjhv5Q0vsxvvimu9HmcwXAcFDFogR
VD0OmG7hLII9YiaT5OdmYZaYXPW8Zca/MKNAY+D6dUYR6TK1rSrzY3ViXoWB+ohRw7CyNUFHK
+f7BXKkBeojlcBvYj9kWjG6s8qrhZ4K2UVLWRA8tRzp0qIOBeE5dmD0ys9r2jMrqaGTCuSRa0
90Kyjge8YQt/kUWDoAghSH0Eyg/NnEpRxIsyz5Cyv3DD4Gw9FQYlAEB3s+Xs2BLLFbPGz4c9l
FMIw/2IhyihEM8V6wGm+Qfl+h43YgDyYA4tqsdQF2xqnqH6N5/WENJoExZkeTHP2mBkyepcsQ
4LQOYsvksrRjDPb8HdEXYqOR5+MdrRkAgB65ADezyF2sKavH03KyIZd++ZTF12vXGLZ1DTS17
Zb8hX7EQZsjAcQZlql1e2waIFsAIlxXtT2rTo4sJ0Z3VzOU5hDpSXtDgLh/iEQz8xrG+ZFJO2
uf+SegciM5Hb6Z6F+QOk589QkQ3krV/yH546lbqKavW9+bJASBRpM9s25HhWb36Nk6VOQNhDN
JQtwnYyWsofOR874bsnj0/L74H2R8gy9CYz8/ZV8iumcz7IaeQ00UNyMSMWUybPf0lZV8BK3W
pV9JXJyO89VHez8N+2Volvqt2xtL8gK/hh7IUTrzY/W65muh9GYmb1VZMy3GxxA/Fggpg8VVj
X1cjgE0RvY+KjCPHfWlUKRTBJ4Q8Lz01QkI3ZqUcn6N9apyF5gJLWad4RtE=
X-Spam-Status: No, score=-94.8 required=5.0 tests=BAYES_00,
GOOD_FROM_CORINNA_CYGWIN, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE,
SPF_FAIL, SPF_HELO_NONE, TXREP,
T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6
X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
Reply-To: cygwin AT cygwin DOT com
Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>

On Jul  1 17:33, David Allsopp wrote:
> This program fails at the second mmap call with EINVAL:
> 
>   #include <stdio.h>
>   #include <sys/mman.h>
>   #include <error.h>
> 
>   int main (void) {
>     void * mem;
>     /* Reserve 256MB address space for the minor heaps */
>     mem = mmap(0, 268439552, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
>     if (mem == MAP_FAILED)
>       error(1, 0, "Reservation failed");
>     /* Commit the first 2MB heap */
>     if (mmap(mem, 2097152, PROT_READ | PROT_WRITE, MAP_PRIVATE |
> MAP_ANONYMOUS | MAP_FIXED, -1, 0) == MAP_FAILED)
>       error(1, 0, "Commit failed");
>   }
> 
> Is this something that's expected to fail for Cygwin, or a bug?

Depends on the point of view, I guess.  PROT_NONE pages are not just
reserved pages in the Windows sense.  mmap'ed pages are always commited
and PROT_NONE is just a page protection.  Using mmap to change the page
protection of already commited memory is not implemented.  To change
this, use mprotect.


Corinna

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019