summaryrefslogtreecommitdiffstats
path: root/usr.bin/locate
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2009-07-24 13:40:25 +0000
committerjhb <jhb@FreeBSD.org>2009-07-24 13:40:25 +0000
commit4064b20ecefb589d0b9290e558c0abfc5229c120 (patch)
tree0ecaf447bb33b2b1bdde8d4d53fead7bfeb0be83 /usr.bin/locate
parentd607f4c3e36cdfbb5b44004389ae0faeaf456f5b (diff)
downloadFreeBSD-src-4064b20ecefb589d0b9290e558c0abfc5229c120.zip
FreeBSD-src-4064b20ecefb589d0b9290e558c0abfc5229c120.tar.gz
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
Diffstat (limited to 'usr.bin/locate')
-rw-r--r--usr.bin/locate/locate/fastfind.c3
-rw-r--r--usr.bin/locate/locate/locate.c2
2 files changed, 2 insertions, 3 deletions
diff --git a/usr.bin/locate/locate/fastfind.c b/usr.bin/locate/locate/fastfind.c
index d9ab2d0..21148bc 100644
--- a/usr.bin/locate/locate/fastfind.c
+++ b/usr.bin/locate/locate/fastfind.c
@@ -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++);
diff --git a/usr.bin/locate/locate/locate.c b/usr.bin/locate/locate/locate.c
index d7529fb..67a97da 100644
--- a/usr.bin/locate/locate/locate.c
+++ b/usr.bin/locate/locate/locate.c
@@ -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,
OpenPOWER on IntegriCloud