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,

_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to