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 */
|
/* init bigram table */
|
||||||
#ifdef FF_MMAP
|
#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) {
|
for (c = 0, p = bigram1, s = bigram2; c < NBG; c++, len-= 2) {
|
||||||
p[c] = check_bigram_char(*paddr++);
|
p[c] = check_bigram_char(*paddr++);
|
||||||
s[c] = check_bigram_char(*paddr++);
|
s[c] = check_bigram_char(*paddr++);
|
||||||
|
@ -291,6 +291,8 @@ search_mmap(db, s)
|
|||||||
fstat(fd, &sb) == -1)
|
fstat(fd, &sb) == -1)
|
||||||
err(1, "`%s'", db);
|
err(1, "`%s'", db);
|
||||||
len = sb.st_size;
|
len = sb.st_size;
|
||||||
|
if (len < (2*NBG))
|
||||||
|
errx(1, "database too small: %s", db);
|
||||||
|
|
||||||
if ((p = mmap((caddr_t)0, (size_t)len,
|
if ((p = mmap((caddr_t)0, (size_t)len,
|
||||||
PROT_READ, MAP_SHARED,
|
PROT_READ, MAP_SHARED,
|
||||||
|
Loading…
Reference in New Issue
Block a user