From owner-svn-src-head@FreeBSD.ORG Fri Jul 24 17:45:02 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40F4E106564A; Fri, 24 Jul 2009 17:45:02 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 1B2EC8FC23; Fri, 24 Jul 2009 17:45:02 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [65.122.17.41]) by cyrus.watson.org (Postfix) with ESMTPS id C98DD46B2E; Fri, 24 Jul 2009 13:45:01 -0400 (EDT) Date: Fri, 24 Jul 2009 18:45:01 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: John Baldwin In-Reply-To: <200907241340.n6ODeP2B011222@svn.freebsd.org> Message-ID: References: <200907241340.n6ODeP2B011222@svn.freebsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r195839 - head/usr.bin/locate/locate X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Jul 2009 17:45:02 -0000 On Fri, 24 Jul 2009, John Baldwin wrote: > Move the check to ensure the locate database has the minimum required size > when using mmap() before invoking mmap(). This avoids a confusing error > message when locate is invoked against a zero-size database after the > recent change to make mmap() fail requests to map 0 bytes. Does this mean we should anticipate other possible application compatibility problems? And I guess that means a 7.2 userspace (i.e., jail) on an 8.0 kernel won't support locate? Robert > > Submitted by: Jaakko Heinonen jh of saunalahti dot fi > Approved by: re (kensmith) > MFC after: 1 week > > Modified: > head/usr.bin/locate/locate/fastfind.c > head/usr.bin/locate/locate/locate.c > > Modified: head/usr.bin/locate/locate/fastfind.c > ============================================================================== > --- head/usr.bin/locate/locate/fastfind.c Thu Jul 23 21:12:21 2009 (r195838) > +++ head/usr.bin/locate/locate/fastfind.c Fri Jul 24 13:40:25 2009 (r195839) > @@ -154,9 +154,6 @@ fastfind > > /* init bigram table */ > #ifdef FF_MMAP > - if (len < (2*NBG)) > - errx(1, "database too small: %s", database); > - > for (c = 0, p = bigram1, s = bigram2; c < NBG; c++, len-= 2) { > p[c] = check_bigram_char(*paddr++); > s[c] = check_bigram_char(*paddr++); > > Modified: head/usr.bin/locate/locate/locate.c > ============================================================================== > --- head/usr.bin/locate/locate/locate.c Thu Jul 23 21:12:21 2009 (r195838) > +++ head/usr.bin/locate/locate/locate.c Fri Jul 24 13:40:25 2009 (r195839) > @@ -291,6 +291,8 @@ search_mmap(db, s) > fstat(fd, &sb) == -1) > err(1, "`%s'", db); > len = sb.st_size; > + if (len < (2*NBG)) > + errx(1, "database too small: %s", db); > > if ((p = mmap((caddr_t)0, (size_t)len, > PROT_READ, MAP_SHARED, >