From owner-freebsd-ports@FreeBSD.ORG Mon Jul 20 07:22:37 2009 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9BC1B1065673 for ; Mon, 20 Jul 2009 07:22:37 +0000 (UTC) (envelope-from mel.flynn+fbsd.hackers@mailing.thruhere.net) Received: from mailhub.rachie.is-a-geek.net (rachie.is-a-geek.net [66.230.99.27]) by mx1.freebsd.org (Postfix) with ESMTP id 2E28F8FC13 for ; Mon, 20 Jul 2009 07:22:36 +0000 (UTC) (envelope-from mel.flynn+fbsd.hackers@mailing.thruhere.net) Received: from mx1.sbmail.office-on-the.net (mx1.sbmail.office-on-the.net [192.168.2.107]) by mailhub.rachie.is-a-geek.net (Postfix) with ESMTP id 0F1B47E858 for ; Sun, 19 Jul 2009 23:07:33 -0800 (AKDT) Received: from dspam.sbmail.office-on-the.net (mx1.sbmail.office-on-the.net [192.168.2.107]) by mx1.sbmail.office-on-the.net (Postfix) with SMTP id CDA6CC2C801 for ; Sun, 19 Jul 2009 23:07:32 -0800 (AKDT) Received: from webmail.testbox.ath.cx (mx1.sbmail.office-on-the.net [192.168.2.107]) by mx1.sbmail.office-on-the.net (Postfix) with ESMTP id 99397C2C800; Sun, 19 Jul 2009 23:07:27 -0800 (AKDT) MIME-Version: 1.0 Date: Sun, 19 Jul 2009 23:07:27 -0800 From: Mel Flynn To: John Baldwin In-Reply-To: References: <200907131428.08923.jhb@freebsd.org> <200907132133.52217.tijl@ulyssis.org> <200907131639.10346.jhb@freebsd.org> Message-ID: <55daf4085f8ce3b4e383e36ba502bdec@sbmail.office-on-the.net> X-Sender: mel.flynn+fbsd.hackers@mailing.thruhere.net User-Agent: RoundCube Webmail/0.2 Content-Type: multipart/mixed; boundary="=_c8a6da3ff5ed2d176ffac65707f6706f" X-DSPAM-Result: Innocent X-DSPAM-Processed: Sun Jul 19 23:07:32 2009 X-DSPAM-Confidence: 1.0000 X-DSPAM-Improbability: 1 in 98689407 chance of being spam X-DSPAM-Probability: 0.0023 X-DSPAM-Signature: 60,4a6417b444751120931771 X-DSPAM-Factors: 27, Sun, 0.40000, "uap+>len, 0.40000, Received*Sun+19, 0.40000, Content-Type*application/octet+stream, 0.40000, ccache+CALL, 0.40000, ccache+CALL, 0.40000, On+Monday, 0.40000, On+Monday, 0.40000, right, 0.40000, smoochies+rachie, 0.40000, smoochies+rachie, 0.40000, >+"/var/db/ccache/mel/tmp, 0.40000, 2009+16, 0.40000, 229, 0.40000, 229, 0.40000, tree+recently, 0.40000, John+Baldwin, 0.40000, John+Baldwin, 0.40000, Cc*hackers+freebsd.org>, 0.40000, into+numeric, 0.40000, Cc*Best, 0.40000, an, 0.40000, Cc*Coosemans+>>, 0.40000, Received*webmail.testbox.ath.cx, 0.40000 Cc: ahze@freebsd.org, Alan Cox , freebsd-hackers@freebsd.org, ports@freebsd.org, Alexander Best , Nate Eldredge Subject: Re: mmap/munmap with zero length X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Jul 2009 07:22:38 -0000 --=_c8a6da3ff5ed2d176ffac65707f6706f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, 19 Jul 2009 22:13:48 -0800, Mel Flynn wrote: > On Mon, 13 Jul 2009 16:39:09 -0400, John Baldwin wrot= e: >> On Monday 13 July 2009 3:33:51 pm Tijl Coosemans wrote: >>> On Monday 13 July 2009 20:28:08 John Baldwin wrote: >>> > On Sunday 05 July 2009 3:32:25 am Alexander Best wrote: >>> >> so mmap differs from the POSIX recommendation right. the malloc.co= nf >>> >> option seems more like a workaround/hack. imo it's confusing to ha= ve >>> >> mmap und munmap deal differently with len=3D0. being able to >>> >> succesfully alocate memory which cannot be removed doesn't seem >>> >> logical to me. >>> >=20 >>> > This should fix it: >>> >=20 >>> > --- //depot/user/jhb/acpipci/vm/vm_mmap.c >>> > +++ /home/jhb/work/p4/acpipci/vm/vm_mmap.c >>> > @@ -229,7 +229,7 @@ >>> >=20 >>> > fp =3D NULL; >>> > /* make sure mapping fits into numeric range etc */ >>> > - if ((ssize_t) uap->len < 0 || >>> > + if ((ssize_t) uap->len <=3D 0 || >>> > ((flags & MAP_ANON) && uap->fd !=3D -1)) >>> > return (EINVAL); >>>=20 >>> Why not "uap->len =3D=3D 0"? Sizes of 2GiB and more (32bit) shouldn't= cause >>> an error. >>=20 >> I don't actually disagree and know of locally modified versions of > FreeBSD=20 >> that remove this check for precisely that reason. >=20 > If this has hit the tree recently, I think it broke ccache. >=20 > Since I've also done make delete-old-libs and was about to rebuild all = my > ports on my laptop, I'll investigate, as I'm not looking forward to doi= ng > this twice for all dependants of libtool :(. >=20 > Failed to mmap > /var/db/ccache/mel/tmp.cpp_stderr.smoochies.rachie.is-a-geek.net.27934 >=20 > kdump: > 27934 ccache CALL open(0x28201280,O_RDONLY,0x1) > 27934 ccache NAMI=20 > "/var/db/ccache/mel/tmp.cpp_stderr.smoochies.rachie.is-a-geek.net.27934= " > 27934 ccache RET open 4 > 27934 ccache CALL fstat(0x4,0xbfbfe7fc) > 27934 ccache STRU struct stat {dev=3D105, ino=3D895320, mode=3D-rw-= r--r-- , > nlink=3D1, uid=3D1003, gid=3D0, rdev=3D0, atime=3D1248069251, stime=3D1= 248069251, > ctime=3D1248069251, birthtime=3D1248069251, size=3D0, blksize=3D4096, b= locks=3D0, > flags=3D0x0 } > 27934 ccache RET fstat 0 > 27934 ccache CALL mmap(0,0,PROT_READ,MAP_PRIVATE,0x4,0,0) > 27934 ccache RET mmap -1 errno 22 Invalid argument Confirmed, attached patch fixes ccache. Probably should be patched in patch-md4. --=20 Mel --=_c8a6da3ff5ed2d176ffac65707f6706f Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; charset="UTF-8"; name="patch-mmap"; Content-Disposition: attachment; filename="patch-mmap"; LS0tIGhhc2guYy5vcmlnCTIwMDktMDctMTkgMjI6NDY6MTguMDAwMDAwMDAwIC0wODAwCisrKyBo YXNoLmMJMjAwOS0wNy0xOSAyMjo0NjoxMy4wMDAwMDAwMDAgLTA4MDAKQEAgLTY3LDEyICs2Nywx NiBAQAogICAgICAgICAgICAgICAgY2xvc2UoZmQpOwogICAgICAgICAgICAgICAgZmF0YWwoX19G VU5DVElPTl9fKTsKICAgICAgICB9Ci0gICAgICAgYnVmID0gbW1hcChOVUxMLCBzdGF0cy5zdF9z aXplLCBQUk9UX1JFQUQsIE1BUF9QUklWQVRFLCBmZCwgMCk7IAotICAgICAgIGlmIChidWYgPT0g TUFQX0ZBSUxFRCkgewotICAgICAgICAgICAgICAgY2NfbG9nKCJGYWlsZWQgdG8gbW1hcCAlc1xu IiwgZm5hbWUpOwotICAgICAgICAgICAgICAgY2xvc2UoZmQpOwotICAgICAgICAgICAgICAgZmF0 YWwoX19GVU5DVElPTl9fKTsKLSAgICAgICAgfSAgICAgICAKKyAgICAgICBpZiggc3RhdHMuc3Rf c2l6ZSA9PSAwICkKKwkgICAgICAgYnVmID0gTlVMTDsKKyAgICAgICBlbHNlIHsKKwkgICAgICAg YnVmID0gbW1hcChOVUxMLCBzdGF0cy5zdF9zaXplLCBQUk9UX1JFQUQsIE1BUF9QUklWQVRFLCBm ZCwgMCk7IAorCSAgICAgICBpZiAoYnVmID09IE1BUF9GQUlMRUQpIHsKKwkJICAgICAgIGNjX2xv ZygiRmFpbGVkIHRvIG1tYXAgJXNcbiIsIGZuYW1lKTsKKwkJICAgICAgIGNsb3NlKGZkKTsKKwkJ ICAgICAgIGZhdGFsKF9fRlVOQ1RJT05fXyk7CisJCX0gICAgICAgCisgICAgICAgfQogCiAgICAg ICAgIGhhc2hfYnVmZmVyKGJ1Ziwgc3RhdHMuc3Rfc2l6ZSk7CiAJY2xvc2UoZmQpOwo= --=_c8a6da3ff5ed2d176ffac65707f6706f--