]> granicus.if.org Git - file/commitdiff
Make check_mem() initialize got_match even if we don't realloc the
authorAnon Ymous <ljt@astron.com>
Tue, 16 Jan 2007 23:24:31 +0000 (23:24 +0000)
committerAnon Ymous <ljt@astron.com>
Tue, 16 Jan 2007 23:24:31 +0000 (23:24 +0000)
array.

src/softmagic.c

index 60c1cc3d1d9338238ed52c8a8a1bca20fd49fe22..b8ca85aa6700c27bca9a6267b172a91fda310e5a 100644 (file)
@@ -38,7 +38,7 @@
 
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: softmagic.c,v 1.89 2007/01/16 14:58:48 ljt Exp $")
+FILE_RCSID("@(#)$File: softmagic.c,v 1.90 2007/01/16 23:24:31 ljt Exp $")
 #endif /* lint */
 
 private int match(struct magic_set *, struct magic *, uint32_t,
@@ -258,17 +258,17 @@ check_mem(struct magic_set *ms, unsigned int level)
 {
        size_t len;
 
-       if (level < ms->c.len)
-               return 0;
-
-       len = (ms->c.len += 20) * sizeof(*ms->c.li);
-       ms->c.li = (ms->c.li == NULL) ? malloc(len) : realloc(ms->c.li, len);
-       if (ms->c.li != NULL) {
-               ms->c.li[level].got_match = 0;
-               return 0;
+       if (level >= ms->c.len) {
+               len = (ms->c.len += 20) * sizeof(*ms->c.li);
+               ms->c.li = (ms->c.li == NULL) ? malloc(len) :
+                   realloc(ms->c.li, len);
+               if (ms->c.li == NULL) {
+                       file_oomem(ms, len);
+                       return -1;
+               }
        }
-       file_oomem(ms, len);
-       return -1;
+       ms->c.li[level].got_match = 0;
+       return 0;
 }
 
 private int