svn commit: r195839 - head/usr.bin/locate/locate
John Baldwin
jhb at FreeBSD.org
Fri Jul 24 13:40:26 UTC 2009
Author: jhb
Date: Fri Jul 24 13:40:25 2009
New Revision: 195839
URL: http://svn.freebsd.org/changeset/base/195839
Log:
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.
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,
More information about the svn-src-head
mailing list