]> granicus.if.org Git - file/commitdiff
check for file too small before dereferencing a pointer
authorChristos Zoulas <christos@zoulas.com>
Sun, 7 Mar 2004 16:16:14 +0000 (16:16 +0000)
committerChristos Zoulas <christos@zoulas.com>
Sun, 7 Mar 2004 16:16:14 +0000 (16:16 +0000)
src/apprentice.c

index 6cf51d889513c81f58b7860914ed2487bfa4264b..33ce218f24b4a75193e6bac41ff9d656bff0eddb 100644 (file)
@@ -50,7 +50,7 @@
 #endif
 
 #ifndef        lint
-FILE_RCSID("@(#)$Id: apprentice.c,v 1.72 2003/12/23 17:33:38 christos Exp $")
+FILE_RCSID("@(#)$Id: apprentice.c,v 1.73 2004/03/07 16:16:14 christos Exp $")
 #endif /* lint */
 
 #define        EATAB {while (isascii((unsigned char) *l) && \
@@ -971,6 +971,10 @@ apprentice_map(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
                file_error(ms, errno, "cannot stat `%s'", dbname);
                goto error;
        }
+       if (st.st_size < 16) {
+               file_error(ms, 0, "file `%s' is too small", dbname);
+               goto error;
+       }
 
 #ifdef QUICK
        if ((mm = mmap(0, (size_t)st.st_size, PROT_READ|PROT_WRITE,