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
This commit is contained in:
parent
d607f4c3e3
commit
4064b20ece
@ -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++);
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user