]> 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 30cc93cccde580589b33ee6acb360d1643ea2813..95f56f9470408ef746254ad2ae11072b54a1719b 100644 (file)
@@ -38,7 +38,7 @@
 
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: softmagic.c,v 1.88 2007/01/12 17:38:28 christos Exp $")
+FILE_RCSID("@(#)$File: softmagic.c,v 1.89 2007/01/16 14:58:48 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