]> granicus.if.org Git - file/commitdiff
Prevent bogus extra encoding output.
authorReuben Thomas <rrt@sc3d.org>
Sun, 21 Jul 2013 21:06:41 +0000 (21:06 +0000)
committerReuben Thomas <rrt@sc3d.org>
Sun, 21 Jul 2013 21:06:41 +0000 (21:06 +0000)
src/compress.c
src/funcs.c

index 084970b890c22a17788252e81c7bd56544de29e8..e0802d8acc666eea133782a79884a7d13ac436ea 100644 (file)
@@ -35,7 +35,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: compress.c,v 1.70 2012/11/07 17:54:48 christos Exp $")
+FILE_RCSID("@(#)$File: compress.c,v 1.71 2013/07/21 21:06:41 rrt Exp $")
 #endif
 
 #include "magic.h"
@@ -121,14 +121,12 @@ file_zmagic(struct magic_set *ms, int fd, const char *name,
                                if (file_printf(ms, mime ?
                                    " compressed-encoding=" : " (") == -1)
                                        goto error;
+                               if (file_buffer(ms, -1, NULL, buf, nbytes) == -1)
+                                       goto error;
+                               if (!mime && file_printf(ms, ")") == -1)
+                                       goto error;
                        }
 
-                       if ((mime == 0 || mime & MAGIC_MIME_ENCODING) &&
-                           file_buffer(ms, -1, NULL, buf, nbytes) == -1)
-                               goto error;
-
-                       if (!mime && file_printf(ms, ")") == -1)
-                               goto error;
                        rv = 1;
                        break;
                }
index 7fc0e5cbe2759cb159a85d148cfd742102b2eccf..841ead1a1e83f9d28ff5dcd9cbe98f37fc7e598b 100644 (file)
@@ -27,7 +27,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: funcs.c,v 1.61 2012/10/30 23:11:51 christos Exp $")
+FILE_RCSID("@(#)$File: funcs.c,v 1.62 2013/07/21 21:06:41 rrt Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -207,7 +207,7 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((unu
                if ((m = file_zmagic(ms, fd, inname, ubuf, nb)) != 0) {
                        if ((ms->flags & MAGIC_DEBUG) != 0)
                                (void)fprintf(stderr, "zmagic %d\n", m);
-                       goto done;
+                       goto done_encoding;
                }
 #endif
        /* Check if we have a tar file */
@@ -290,6 +290,7 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((unu
                if (file_printf(ms, "%s", code_mime) == -1)
                        rv = -1;
        }
+ done_encoding:
        free(u8buf);
        if (rv)
                return rv;