]> granicus.if.org Git - file/commitdiff
Fix change made yesterday to correctly update offset for both indirect
authorReuben Thomas <rrt@sc3d.org>
Tue, 12 Feb 2008 15:28:39 +0000 (15:28 +0000)
committerReuben Thomas <rrt@sc3d.org>
Tue, 12 Feb 2008 15:28:39 +0000 (15:28 +0000)
and non-indirect offsets.

src/softmagic.c

index 91d252d5df2f6ac7571a8d01c5781a1e67dcb19b..6a7c38a5dbb0fde5b34d68471baee68e0f57a87a 100644 (file)
@@ -38,7 +38,7 @@
 
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: softmagic.c,v 1.107 2008/02/11 22:11:24 rrt Exp $")
+FILE_RCSID("@(#)$File: softmagic.c,v 1.108 2008/02/11 23:20:51 rrt Exp $")
 #endif /* lint */
 
 private int match(struct magic_set *, struct magic *, uint32_t,
@@ -187,11 +187,12 @@ match(struct magic_set *ms, struct magic *magic, uint32_t nmagic,
                                 */
                                cont_level = m->cont_level;
                        }
+                       if (!(magic[magindex - 1].flag & OFFADD))
+                               ms->offset = m->offset;
                        if (m->flag & OFFADD) {
                                ms->offset +=
                                    ms->c.li[cont_level - 1].off;
-                       } else
-                               ms->offset = m->offset;
+                       }
 
 #ifdef ENABLE_CONDITIONALS
                        if (m->cond == COND_ELSE ||