From owner-freebsd-bugs@FreeBSD.ORG Sun Jul 10 05:40:08 2011 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B83F106566C for ; Sun, 10 Jul 2011 05:40:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 3F2208FC0A for ; Sun, 10 Jul 2011 05:40:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p6A5e8wa023552 for ; Sun, 10 Jul 2011 05:40:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p6A5e8Vk023551; Sun, 10 Jul 2011 05:40:08 GMT (envelope-from gnats) Resent-Date: Sun, 10 Jul 2011 05:40:08 GMT Resent-Message-Id: <201107100540.p6A5e8Vk023551@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Yui NARUSE Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47531106564A for ; Sun, 10 Jul 2011 05:39:19 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 373A68FC0C for ; Sun, 10 Jul 2011 05:39:19 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id p6A5dI1v034190 for ; Sun, 10 Jul 2011 05:39:18 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id p6A5dIRQ034189; Sun, 10 Jul 2011 05:39:18 GMT (envelope-from nobody) Message-Id: <201107100539.p6A5dIRQ034189@red.freebsd.org> Date: Sun, 10 Jul 2011 05:39:18 GMT From: Yui NARUSE To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: kern/158755: mmap fails with addr=NULL, flags=MAP_STACK X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Jul 2011 05:40:08 -0000 >Number: 158755 >Category: kern >Synopsis: mmap fails with addr=NULL, flags=MAP_STACK >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jul 10 05:40:07 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Yui NARUSE >Release: 8.2 >Organization: >Environment: FreeBSD windy.airemix.net 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: FreeBSD's mmap supports MAP_STACK as flags. But when addr is NULL it won't find any suitable addr and try to use addr:0 and fails. Note that manpage has following description and without MAP_STACK it find unallocated space and use it. "If addr is zero, an address will be selected by the system. The actual starting address of the region is returned." >How-To-Repeat: Run following program. Both mmap should success but on FreeBSD 8.2 first one fails. #include #include #include int main (void) { void *ptr; errno = 0; ptr = mmap((void *)0, 1, PROT_READ | PROT_WRITE, MAP_STACK, -1, 0); printf("addr=0: ptr=%p, errno=%d\n", ptr, errno); errno = 0; ptr = mmap((void *)1, 1, PROT_READ | PROT_WRITE, MAP_STACK, -1, 0); printf("addr=1: ptr=%p, errno=%d\n", ptr, errno); return 0; } >Fix: >Release-Note: >Audit-Trail: >Unformatted: