]> granicus.if.org Git - file/commitdiff
reduce readonly data.
authorChristos Zoulas <christos@zoulas.com>
Sat, 26 Jan 2008 18:45:16 +0000 (18:45 +0000)
committerChristos Zoulas <christos@zoulas.com>
Sat, 26 Jan 2008 18:45:16 +0000 (18:45 +0000)
ChangeLog
magic/Magdir/audio
magic/Makefile.in
src/apprentice.c
src/ascmagic.c
src/compress.c
src/is_tar.c
src/names.h
src/readelf.c

index 2beffb0cfd775916180d03c7340313ef3eb21409..8ecc90d13ac465ae818fa741b6cb0d15115b8b12 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-01-26 13:45 Christos Zoulas <christos@zoulas.com>
+
+       * reduce writable data from Diego "Flameeyes" Petten
+
 2007-12-28 15:06 Christos Zoulas <christos@zoulas.com>
 
        * strtof detection
index 511da1dc5be0985fa20fcb857d2e954459cef6af..18b47a6254ba8a8ee00bdc8b4694cb077281a31d 100644 (file)
 # SGI SoundTrack <mpruett@sgi.com>
 0      string          _SGI_SoundTrack         SGI SoundTrack project file
 # ID3 version 2 tags <waschk@informatik.uni-rostock.de>
-0      string          ID3     Audio file with ID3 version 2
->3     ubyte   <0xff   \b%d.
->4     ubyte   <0xff   \b%d tag
+0      string          ID3     Audio file with ID3 version 2.
+>3     ubyte   <0xff   \b%d
+#>4    ubyte   <0xff   \b%d tag
 >2584  string  fLaC            \b, FLAC encoding
 >>2588 byte&0x7f               >0              \b, unknown version
 >>2588 byte&0x7f               0               \b
index ba2ef9dfaa6893f9e455d62bee05e4338ac23103..193bea891a8f3f435fdcee202ba1a219040bb55f 100644 (file)
@@ -263,6 +263,7 @@ Magdir/maple \
 Magdir/mathematica \
 Magdir/matroska \
 Magdir/mcrypt \
+Magdir/mercurial \
 Magdir/mime \
 Magdir/mips \
 Magdir/mirage \
@@ -352,6 +353,7 @@ Magdir/vxl \
 Magdir/wordprocessors \
 Magdir/xdelta \
 Magdir/xenix \
+Magdir/xilinx \
 Magdir/xo65 \
 Magdir/xwindows \
 Magdir/zilog \
index 24223c288ffd1f085353519aabea62d629a01efb..0dd5a531703fcb970beb3f35af61c05ae31a3711 100644 (file)
@@ -47,7 +47,7 @@
 #endif
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: apprentice.c,v 1.108 2007/12/27 16:35:58 christos Exp $")
+FILE_RCSID("@(#)$File: apprentice.c,v 1.109 2007/12/27 20:52:36 christos Exp $")
 #endif /* lint */
 
 #define        EATAB {while (isascii((unsigned char) *l) && \
@@ -151,13 +151,13 @@ main(int argc, char *argv[])
 #endif /* COMPILE_ONLY */
 
 static const struct type_tbl_s {
-       const char *name;
+       const char name[16];
        const size_t len;
        const int type;
        const int format;
 } type_tbl[] = {
 # define XX(s)         s, (sizeof(s) - 1)
-# define XX_NULL       NULL, 0
+# define XX_NULL       "", 0
        { XX("byte"),           FILE_BYTE,              FILE_FMT_NUM },
        { XX("short"),          FILE_SHORT,             FILE_FMT_NUM },
        { XX("default"),        FILE_DEFAULT,           FILE_FMT_STR },
@@ -206,7 +206,7 @@ get_type(const char *l, const char **t)
 {
        const struct type_tbl_s *p;
 
-       for (p = type_tbl; p->name; p++) {
+       for (p = type_tbl; p->len; p++) {
                if (strncmp(l, p->name, p->len) == 0) {
                        if (t)
                                *t = l + p->len;
@@ -226,7 +226,7 @@ init_file_tables(void)
                return;
        done++;
 
-       for (p = type_tbl; p->name; p++) {
+       for (p = type_tbl; p->len; p++) {
                assert(p->type < FILE_NAMES_SIZE);
                file_names[p->type] = p->name;
                file_formats[p->type] = p->format;
@@ -771,19 +771,19 @@ get_op(char c)
 private int
 get_cond(const char *l, const char **t)
 {
-       static struct cond_tbl_s {
-               const char *name;
-               const size_t len;
-               const int cond;
+       static const struct cond_tbl_s {
+               char name[8];
+               size_t len;
+               int cond;
        } cond_tbl[] = {
                { "if",         2,      COND_IF },
                { "elif",       4,      COND_ELIF },
                { "else",       4,      COND_ELSE },
-               { NULL,         0,      COND_NONE },
+               { "",           0,      COND_NONE },
        };
-       struct cond_tbl_s *p;
+       const struct cond_tbl_s *p;
 
-       for (p = cond_tbl; p->name; p++) {
+       for (p = cond_tbl; p->len; p++) {
                if (strncmp(l, p->name, p->len) == 0 &&
                    isspace((unsigned char)l[p->len])) {
                        if (t)
index b1d9d7967775ab69b3bbc2ec6bf3fd2d3164ad27..ab224ac8ce812108984cc49ddd52636e6cc3547f 100644 (file)
@@ -49,7 +49,7 @@
 #include "names.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: ascmagic.c,v 1.52 2007/10/17 19:33:31 christos Exp $")
+FILE_RCSID("@(#)$File: ascmagic.c,v 1.53 2007/10/29 00:54:08 christos Exp $")
 #endif /* lint */
 
 typedef unsigned long unichar;
@@ -74,7 +74,7 @@ file_ascmagic(struct magic_set *ms, const unsigned char *buf, size_t nbytes)
        unsigned char *nbuf = NULL;
        unichar *ubuf = NULL;   
        size_t ulen;
-       struct names *p;
+       const struct names *p;
        int rv = -1;
        int mime = ms->flags & MAGIC_MIME;
 
index a785072eeaa5a74507683dd31e52a08bc1af1121..9eaca906eb4475ce8c0381fab83086ff128a8dee 100644 (file)
 
 
 #ifndef lint
-FILE_RCSID("@(#)$File: compress.c,v 1.53 2007/10/17 19:33:31 christos Exp $")
+FILE_RCSID("@(#)$File: compress.c,v 1.54 2007/12/02 00:28:10 christos Exp $")
 #endif
 
-private struct {
-       const char *magic;
+private const struct {
+       const char magic[8];
        size_t maglen;
-       const char *const argv[3];
+       const char *argv[3];
        int silent;
 } compr[] = {
        { "\037\235", 2, { "gzip", "-cdq", NULL }, 1 },         /* compressed */
index cbaba63c63682abebd71a43b560d53a27c8b0b2b..ff57e4d2b6abc9909258753cadd288853516c343 100644 (file)
@@ -45,7 +45,7 @@
 #include "tar.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: is_tar.c,v 1.28 2007/08/19 03:45:08 christos Exp $")
+FILE_RCSID("@(#)$File: is_tar.c,v 1.29 2007/10/17 19:33:31 christos Exp $")
 #endif
 
 #define        isodigit(c)     ( ((c) >= '0') && ((c) <= '7') )
@@ -53,7 +53,7 @@ FILE_RCSID("@(#)$File: is_tar.c,v 1.28 2007/08/19 03:45:08 christos Exp $")
 private int is_tar(const unsigned char *, size_t);
 private int from_oct(int, const char *);       /* Decode octal number */
 
-static const char *tartype[] = {
+static const char tartype[][32] = {
        "tar archive",
        "POSIX tar archive",
        "POSIX tar archive (GNU)",
index 2027ebd9b335f730a582a8aac4a618c2541e8536..c7cd38e036ba7abf8b587583180303ab7dd0f777 100644 (file)
@@ -32,7 +32,7 @@
  * appear at fixed offsets into the file. Don't make HOWMANY
  * too high unless you have a very fast CPU.
  *
- * $File: names.h,v 1.28 2007/10/29 00:54:08 christos Exp $
+ * $File: names.h,v 1.29 2007/12/27 20:30:35 christos Exp $
  */
 
 /*
@@ -57,8 +57,8 @@
 #define        L_PO    13              /* PO */
 
 static const struct {
-       const char *human;
-       const char *mime;
+       char human[48];
+       char mime[16];
 } types[] = {
        { "C program",                                  "text/x-c", },
        { "C++ program",                                "text/x-c++" },
@@ -74,8 +74,7 @@ static const struct {
        { "BCPL program",                               "text/x-bcpl" },
        { "M4 macro language pre-processor",            "text/x-m4" },
        { "PO (gettext message catalogue)",             "text/x-po" },
-       { "cannot happen error on names.h/types",       "error/x-error" },
-       { 0, 0}
+       { "cannot happen error on names.h/types",       "error/x-error" }
 };
 
 /*
@@ -114,8 +113,8 @@ static const struct {
  * as Java, as it comes after "the" and "The".  Perhaps we need a fancier
  * heuristic to identify Java?
  */
-static struct names {
-       const char *name;
+static const struct names {
+       char name[14];
        short type;
 } names[] = {
        /* These must be sorted by eye for optimal hit rate */
@@ -180,7 +179,6 @@ static struct names {
        {"<body",       L_HTML},
        {"<BODY",       L_HTML},
        {"<html",       L_HTML},
-       {"<HTML",       L_HTML},
-       {NULL,          0}
+       {"<HTML",       L_HTML}
 };
-#define NNAMES ((sizeof(names)/sizeof(struct names)) - 1)
+#define NNAMES (sizeof(names)/sizeof(struct names))
index 966ac133d387ab706c16265b24573fac1a5454b4..25ea2aecb897afaf5c3c2492344284b30d87e81f 100644 (file)
@@ -37,7 +37,7 @@
 #include "readelf.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: readelf.c,v 1.67 2007/11/17 17:08:27 christos Exp $")
+FILE_RCSID("@(#)$File: readelf.c,v 1.68 2007/12/27 16:13:26 christos Exp $")
 #endif
 
 #ifdef ELFCORE
@@ -189,14 +189,14 @@ getu64(int swap, uint64_t value)
                         : prpsoffsets64[i])
 
 #ifdef ELFCORE
-size_t prpsoffsets32[] = {
+static const size_t    prpsoffsets32[] = {
        8,              /* FreeBSD */
        44,             /* Linux (path name) */
        28,             /* Linux 2.0.36 (short name) */
        84,             /* SunOS 5.x */
 };
 
-size_t prpsoffsets64[] = {
+static const size_t    prpsoffsets64[] = {
        16,             /* FreeBSD, 64-bit */
        56,             /* Linux (path name) */
        40,             /* Linux (tested on core from 2.4.x, short name) */
@@ -233,7 +233,7 @@ size_t      prpsoffsets64[] = {
 #define        OS_STYLE_FREEBSD        1
 #define        OS_STYLE_NETBSD         2
 
-private const char *os_style_names[] = {
+private const char os_style_names[][8] = {
        "SVR4",
        "FreeBSD",
        "NetBSD",