]> granicus.if.org Git - file/commitdiff
lint fixes and more from NetBSD
authorChristos Zoulas <christos@zoulas.com>
Fri, 8 May 2009 17:41:58 +0000 (17:41 +0000)
committerChristos Zoulas <christos@zoulas.com>
Fri, 8 May 2009 17:41:58 +0000 (17:41 +0000)
15 files changed:
ChangeLog
doc/file.man
magic/Magdir/archive
magic/Magdir/filesystems
src/apprentice.c
src/cdf.c
src/cdf_time.c
src/compress.c
src/file.h
src/fsmagic.c
src/funcs.c
src/magic.c
src/readcdf.c
src/readelf.c
src/softmagic.c

index 90a32fcecffb348d3f9a2fa252bfeec54e41a0ef..1e96975b7e65cd8df5af9f0774b20b69744323c9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-05-08  13:40  Christos Zoulas <christos@zoulas.com>
+       
+       * lint fixes and more from NetBSD
+
 2009-05-06  10:25  Christos Zoulas <christos@zoulas.com>
 
        * Avoid null dereference in cdf code (Drew Yao)
index 8f7a95acc33e2cd81e26b77bb7dfc73952404c88..0410e70eca2eefd480162e338cf3e3adfb104bda 100644 (file)
@@ -1,4 +1,4 @@
-.\" $File: file.man,v 1.78 2008/11/06 21:17:45 rrt Exp $
+.\" $File: file.man,v 1.79 2008/11/06 22:49:08 rrt Exp $
 .Dd October 9, 2008
 .Dt FILE __CSECTION__
 .Os
@@ -175,7 +175,7 @@ Exclude the test named in
 .Ar testname
 from the list of tests made to determine the file type. Valid test names
 are:
-.Bl -tag -width
+.Bl -tag -width compress
 .It apptype
 .Dv EMX
 application type (only on EMX).
index b75fac0838b58731478ad5c99dc75e482a012e1e..9175aac9c5c0dffaff6610fdf392caa58ad50ae9 100644 (file)
 !:mime application/zip
 >4     byte            0x14
 >>30   ubelong         !0x6d696d65     Zip archive data, at least v2.0 to extract
+>0x161 string          WINZIP          Zip archive data, WinZIP self-extracting
 !:mime application/zip
 
 # OpenOffice.org / KOffice / StarOffice documents
index 93da429432aa6e27aa43922db8176b2c21700327..41b6ab63eaf31ff56d38eb2bd2a529f6378bfb0d 100644 (file)
 !:mime application/x-iso9660-image
 32776  string    CDROM     High Sierra CD-ROM filesystem data
 
+# .cso files
+0    string    CISO    Compressed ISO CD image
+
 # cramfs filesystem - russell@coker.com.au
 0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
 >4      lelong  x size %lu
index 5edeb26a888dd6afd4fe58f0e7f278e73318e669..af30a504cdd1a8cc9f0e949f1d18c5dd0be6f21b 100644 (file)
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: apprentice.c,v 1.150 2009/02/17 16:29:03 christos Exp $")
+FILE_RCSID("@(#)$File: apprentice.c,v 1.151 2009/03/18 15:19:23 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -627,7 +627,9 @@ load_1(struct magic_set *ms, int action, const char *fn, int *errs,
                (*errs)++;
        } else {
                /* read and parse this file */
-               for (ms->line = 1; fgets(line, sizeof(line), f) != NULL; ms->line++) {
+               for (ms->line = 1;
+                   fgets(line, CAST(int, sizeof(line)), f) != NULL;
+                   ms->line++) {
                        size_t len;
                        len = strlen(line);
                        if (len == 0) /* null line, garbage, etc */
@@ -1087,7 +1089,7 @@ parse(struct magic_set *ms, struct magic_entry **mentryp, uint32_t *nmentryp,
                                return -1;
                        }
                        me->mp = m = nm;
-                       me->max_count = cnt;
+                       me->max_count = CAST(uint32_t, cnt);
                }
                m = &me->mp[me->cont_count++];
                (void)memset(m, 0, sizeof(*m));
@@ -1123,7 +1125,7 @@ parse(struct magic_set *ms, struct magic_entry **mentryp, uint32_t *nmentryp,
                m->cont_level = 0;
                me->cont_count = 1;
        }
-       m->lineno = lineno;
+       m->lineno = CAST(uint32_t, lineno);
 
        if (*l == '&') {  /* m->cont_level == 0 checked below. */
                 ++l;            /* step over */
@@ -1296,7 +1298,8 @@ parse(struct magic_set *ms, struct magic_entry **mentryp, uint32_t *nmentryp,
                                                file_magwarn(ms,
                                                    "multiple ranges");
                                        have_range = 1;
-                                       m->str_range = strtoul(l, &t, 0);
+                                       m->str_range = CAST(uint32_t,
+                                           strtoul(l, &t, 0));
                                        if (m->str_range == 0)
                                                file_magwarn(ms,
                                                    "zero range");
@@ -1943,7 +1946,7 @@ getstr(struct magic_set *ms, struct magic *m, const char *s, int warn)
        }
 out:
        *p = '\0';
-       m->vallen = p - origp;
+       m->vallen = CAST(unsigned char, (p - origp));
        if (m->type == FILE_PSTRING)
                m->vallen++;
        return s;
index 01aaf96d6109dbdc06da8a922591f90fbc688725..30950a26cce7aa053eeda55c418cb7529cc5340d 100644 (file)
--- a/src/cdf.c
+++ b/src/cdf.c
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: cdf.c,v 1.29 2009/05/06 14:27:30 christos Exp $")
+FILE_RCSID("@(#)$File: cdf.c,v 1.30 2009/05/06 14:29:47 christos Exp $")
 #endif
 
 #include <assert.h>
@@ -68,9 +68,9 @@ static union {
 
 #define NEED_SWAP      (cdf_bo.u == (uint32_t)0x01020304)
 
-#define CDF_TOLE8(x)   (NEED_SWAP ? cdf_tole8(x) : (uint64_t)(x))
-#define CDF_TOLE4(x)   (NEED_SWAP ? cdf_tole4(x) : (uint32_t)(x))
-#define CDF_TOLE2(x)   (NEED_SWAP ? cdf_tole2(x) : (uint16_t)(x))
+#define CDF_TOLE8(x)   ((uint64_t)(NEED_SWAP ? cdf_tole8(x) : (uint64_t)(x)))
+#define CDF_TOLE4(x)   ((uint32_t)(NEED_SWAP ? cdf_tole4(x) : (uint32_t)(x)))
+#define CDF_TOLE2(x)   ((uint16_t)(NEED_SWAP ? cdf_tole2(x) : (uint16_t)(x)))
 
 /*
  * swap a short
@@ -145,15 +145,15 @@ cdf_swap_header(cdf_header_t *h)
        h->h_min_size_standard_stream =
            CDF_TOLE4(h->h_min_size_standard_stream);
        h->h_secid_first_sector_in_short_sat =
-           CDF_TOLE4(h->h_secid_first_sector_in_short_sat);
+           CDF_TOLE4((uint32_t)h->h_secid_first_sector_in_short_sat);
        h->h_num_sectors_in_short_sat =
            CDF_TOLE4(h->h_num_sectors_in_short_sat);
        h->h_secid_first_sector_in_master_sat =
-           CDF_TOLE4(h->h_secid_first_sector_in_master_sat);
+           CDF_TOLE4((uint32_t)h->h_secid_first_sector_in_master_sat);
        h->h_num_sectors_in_master_sat =
            CDF_TOLE4(h->h_num_sectors_in_master_sat);
        for (i = 0; i < __arraycount(h->h_master_sat); i++)
-               h->h_master_sat[i] = CDF_TOLE4(h->h_master_sat[i]);
+               h->h_master_sat[i] = CDF_TOLE4((uint32_t)h->h_master_sat[i]);
 }
 
 void
@@ -186,15 +186,15 @@ void
 cdf_swap_dir(cdf_directory_t *d)
 {
        d->d_namelen = CDF_TOLE2(d->d_namelen);
-       d->d_left_child = CDF_TOLE4(d->d_left_child);
-       d->d_right_child = CDF_TOLE4(d->d_right_child);
-       d->d_storage = CDF_TOLE4(d->d_storage);
+       d->d_left_child = CDF_TOLE4((uint32_t)d->d_left_child);
+       d->d_right_child = CDF_TOLE4((uint32_t)d->d_right_child);
+       d->d_storage = CDF_TOLE4((uint32_t)d->d_storage);
        d->d_storage_uuid[0] = CDF_TOLE8(d->d_storage_uuid[0]);
        d->d_storage_uuid[1] = CDF_TOLE8(d->d_storage_uuid[1]);
        d->d_flags = CDF_TOLE4(d->d_flags);
-       d->d_created = CDF_TOLE8(d->d_created);
-       d->d_modified = CDF_TOLE8(d->d_modified);
-       d->d_stream_first_sector = CDF_TOLE4(d->d_stream_first_sector);
+       d->d_created = CDF_TOLE8((uint64_t)d->d_created);
+       d->d_modified = CDF_TOLE8((uint64_t)d->d_modified);
+       d->d_stream_first_sector = CDF_TOLE4((uint32_t)d->d_stream_first_sector);
        d->d_size = CDF_TOLE4(d->d_size);
 }
 
@@ -374,7 +374,7 @@ cdf_read_sat(const cdf_info_t *info, cdf_header_t *h, cdf_sat_t *sat)
                        goto out2;
                }
                for (k = 0; k < nsatpersec; k++, i++) {
-                       sec = CDF_TOLE4(msa[k]);
+                       sec = CDF_TOLE4((uint32_t)msa[k]);
                        if (sec < 0)
                                goto out;
                        if (i >= sat->sat_len) {
@@ -390,7 +390,7 @@ cdf_read_sat(const cdf_info_t *info, cdf_header_t *h, cdf_sat_t *sat)
                                goto out2;
                        }
                }
-               mid = CDF_TOLE4(msa[nsatpersec]);
+               mid = CDF_TOLE4((uint32_t)msa[nsatpersec]);
        }
 out:
        sat->sat_len = i;
@@ -422,7 +422,7 @@ cdf_count_chain(const cdf_sat_t *sat, cdf_secid_t sid, size_t size)
                        errno = EFTYPE;
                        return (size_t)-1;
                }
-               sid = CDF_TOLE4(sat->sat_tab[sid]);
+               sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]);
        }
        DPRINTF(("\n"));
        return i;
@@ -465,7 +465,7 @@ cdf_read_long_sector_chain(const cdf_info_t *info, const cdf_header_t *h,
                        DPRINTF(("Reading long sector chain %d", sid));
                        goto out;
                }
-               sid = CDF_TOLE4(sat->sat_tab[sid]);
+               sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]);
        }
        return 0;
 out:
@@ -506,7 +506,7 @@ cdf_read_short_sector_chain(const cdf_header_t *h,
                        DPRINTF(("Reading short sector chain %d", sid));
                        goto out;
                }
-               sid = CDF_TOLE4(ssat->sat_tab[sid]);
+               sid = CDF_TOLE4((uint32_t)ssat->sat_tab[sid]);
        }
        return 0;
 out:
@@ -566,7 +566,7 @@ cdf_read_dir(const cdf_info_t *info, const cdf_header_t *h,
                        cdf_unpack_dir(&dir->dir_tab[i * nd + j],
                            &buf[j * CDF_DIRECTORY_SIZE]);
                }
-               sid = CDF_TOLE4(sat->sat_tab[sid]);
+               sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]);
        }
        if (NEED_SWAP)
                for (i = 0; i < dir->dir_len; i++)
@@ -613,7 +613,7 @@ cdf_read_ssat(const cdf_info_t *info, const cdf_header_t *h,
                        DPRINTF(("Reading short sat sector %d", sid));
                        goto out;
                }
-               sid = CDF_TOLE4(sat->sat_tab[sid]);
+               sid = CDF_TOLE4((uint32_t)sat->sat_tab[sid]);
        }
        return 0;
 out:
@@ -733,12 +733,14 @@ cdf_read_property_info(const cdf_stream_t *sst, uint32_t offs,
        *info = inp;
        inp += *count;
        *count += sh.sh_properties;
-       p = (const void *)((const char *)sst->sst_tab + offs + sizeof(sh));
-       e = (const void *)(((const char *)shp) + sh.sh_len);
+       p = (const void *)((const char *)(const void *)sst->sst_tab +
+           offs + sizeof(sh));
+       e = (const void *)(((const char *)(const void *)shp) + sh.sh_len);
        if (cdf_check_stream_offset(sst, e, 0) == -1)
                goto out;
        for (i = 0; i < sh.sh_properties; i++) {
-               q = (const uint32_t *)((const char *)p +
+               q = (const uint32_t *)(const void *)
+                   ((const char *)(const void *)p +
                    CDF_TOLE4(p[(i << 1) + 1])) - 2;
                if (q > e) {
                        DPRINTF(("Ran of the end %p > %p\n", q, e));
@@ -770,7 +772,7 @@ cdf_read_property_info(const cdf_stream_t *sst, uint32_t offs,
                        if (inp[i].pi_type & CDF_VECTOR)
                                goto unknown;
                        (void)memcpy(&s32, &q[o], sizeof(s32));
-                       inp[i].pi_s32 = CDF_TOLE4(s32);
+                       inp[i].pi_s32 = CDF_TOLE4((uint32_t)s32);
                        break;
                case CDF_BOOL:
                case CDF_UNSIGNED32:
@@ -783,13 +785,13 @@ cdf_read_property_info(const cdf_stream_t *sst, uint32_t offs,
                        if (inp[i].pi_type & CDF_VECTOR)
                                goto unknown;
                        (void)memcpy(&s64, &q[o], sizeof(s64));
-                       inp[i].pi_s64 = CDF_TOLE4(s64);
+                       inp[i].pi_s64 = CDF_TOLE8((uint64_t)s64);
                        break;
                case CDF_UNSIGNED64:
                        if (inp[i].pi_type & CDF_VECTOR)
                                goto unknown;
                        (void)memcpy(&u64, &q[o], sizeof(u64));
-                       inp[i].pi_u64 = CDF_TOLE4(u64);
+                       inp[i].pi_u64 = CDF_TOLE8((uint64_t)u64);
                        break;
                case CDF_LENGTH32_STRING:
                        if (nelements > 1) {
@@ -808,11 +810,12 @@ cdf_read_property_info(const cdf_stream_t *sst, uint32_t offs,
                        for (j = 0; j < nelements; j++, i++) {
                                uint32_t l = CDF_TOLE4(q[o]);
                                inp[i].pi_str.s_len = l;
-                               inp[i].pi_str.s_buf = (const char *)(&q[o+1]);
+                               inp[i].pi_str.s_buf =
+                                   (const char *)(const void *)(&q[o+1]);
                                DPRINTF(("l = %d, r = %d, s = %s\n", l,
                                    CDF_ROUND(l, sizeof(l)),
                                    inp[i].pi_str.s_buf));
-                               l = 4 + CDF_ROUND(l, sizeof(l));
+                               l = 4 + (uint32_t)CDF_ROUND(l, sizeof(l));
                                o += l >> 2;
                        }
                        i--;
@@ -821,7 +824,7 @@ cdf_read_property_info(const cdf_stream_t *sst, uint32_t offs,
                        if (inp[i].pi_type & CDF_VECTOR)
                                goto unknown;
                        (void)memcpy(&tp, &q[o], sizeof(tp));
-                       inp[i].pi_tp = CDF_TOLE8(tp);
+                       inp[i].pi_tp = CDF_TOLE8((uint64_t)tp);
                        break;
                case CDF_CLIPBOARD:
                        if (inp[i].pi_type & CDF_VECTOR)
@@ -926,32 +929,32 @@ cdf_print_property_name(char *buf, size_t bufsiz, uint32_t p)
 int
 cdf_print_elapsed_time(char *buf, size_t bufsiz, cdf_timestamp_t ts)
 {
-       size_t len = 0;
+       int len = 0;
        int days, hours, mins, secs;
 
        ts /= CDF_TIME_PREC;
-       secs = ts % 60;
+       secs = (int)(ts % 60);
        ts /= 60;
-       mins = ts % 60;
+       mins = (int)(ts % 60);
        ts /= 60;
-       hours = ts % 24;
+       hours = (int)(ts % 24);
        ts /= 24;
-       days = ts;
+       days = (int)ts;
 
        if (days) {
                len += snprintf(buf + len, bufsiz - len, "%dd+", days);
-               if (len >= bufsiz)
+               if ((size_t)len >= bufsiz)
                        return len;
        }
 
        if (days || hours) {
                len += snprintf(buf + len, bufsiz - len, "%.2d:", hours);
-               if (len >= bufsiz)
+               if ((size_t)len >= bufsiz)
                        return len;
        }
 
        len += snprintf(buf + len, bufsiz - len, "%.2d:", mins);
-       if (len >= bufsiz)
+       if ((size_t)len >= bufsiz)
                return len;
 
        len += snprintf(buf + len, bufsiz - len, "%.2d", secs);
index 3ddf8a722ba21362b495a3f01c8f2ce44eeddd10..5b44845597d48d590dde434283bbd6843a6186e3 100644 (file)
@@ -27,7 +27,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: cdf_time.c,v 1.5 2009/02/03 20:27:51 christos Exp $")
+FILE_RCSID("@(#)$File: cdf_time.c,v 1.6 2009/03/10 11:44:29 christos Exp $")
 #endif
 
 #include <time.h>
@@ -108,22 +108,22 @@ cdf_timestamp_to_timespec(struct timespec *ts, cdf_timestamp_t t)
        ts->tv_nsec = (t % CDF_TIME_PREC) * 100;
 
        t /= CDF_TIME_PREC;
-       tm.tm_sec = t % 60;
+       tm.tm_sec = (int)(t % 60);
        t /= 60;
 
-       tm.tm_min = t % 60;
+       tm.tm_min = (int)(t % 60);
        t /= 60;
 
-       tm.tm_hour = t % 24;
+       tm.tm_hour = (int)(t % 24);
        t /= 24;
 
        // XXX: Approx
-       tm.tm_year = CDF_BASE_YEAR + (t / 365);
+       tm.tm_year = (int)(CDF_BASE_YEAR + (t / 365));
 
        rdays = cdf_getdays(tm.tm_year);
        t -= rdays;
-       tm.tm_mday = cdf_getday(tm.tm_year, t);
-       tm.tm_mon = cdf_getmonth(tm.tm_year, t);
+       tm.tm_mday = cdf_getday(tm.tm_year, (int)t);
+       tm.tm_mon = cdf_getmonth(tm.tm_year, (int)t);
        tm.tm_wday = 0;
        tm.tm_yday = 0;
        tm.tm_isdst = 0;
@@ -143,10 +143,13 @@ cdf_timestamp_to_timespec(struct timespec *ts, cdf_timestamp_t t)
 }
 
 int
+/*ARGSUSED*/
 cdf_timespec_to_timestamp(cdf_timestamp_t *t, const struct timespec *ts)
 {
+#ifndef __lint__
        (void)&t;
        (void)&ts;
+#endif
 #ifdef notyet
        struct tm tm;
        if (gmtime_r(&ts->ts_sec, &tm) == NULL) {
index be7065920ec8be03990232b1fb7f7e89b9e8091c..87cd3633d0dd3404922493aa248051e8517b171d 100644 (file)
@@ -35,7 +35,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: compress.c,v 1.62 2009/03/05 22:40:28 christos Exp $")
+FILE_RCSID("@(#)$File: compress.c,v 1.63 2009/03/23 14:21:51 christos Exp $")
 #endif
 
 #include "magic.h"
@@ -144,7 +144,7 @@ error:
 private ssize_t
 swrite(int fd, const void *buf, size_t n)
 {
-       int rv;
+       ssize_t rv;
        size_t rn = n;
 
        do
@@ -155,7 +155,7 @@ swrite(int fd, const void *buf, size_t n)
                        return -1;
                default:
                        n -= rv;
-                       buf = ((const char *)buf) + rv;
+                       buf = CAST(const char *, buf) + rv;
                        break;
                }
        while (n > 0);
@@ -169,7 +169,7 @@ swrite(int fd, const void *buf, size_t n)
 protected ssize_t
 sread(int fd, void *buf, size_t n, int canbepipe)
 {
-       int rv, cnt;
+       ssize_t rv, cnt;
 #ifdef FIONREAD
        int t = 0;
 #endif
@@ -235,7 +235,8 @@ file_pipe2file(struct magic_set *ms, int fd, const void *startbuf,
     size_t nbytes)
 {
        char buf[4096];
-       int r, tfd;
+       ssize_t r;
+       int tfd, te;
 
        (void)strlcpy(buf, "/tmp/file.XXXXXX", sizeof buf);
 #ifndef HAVE_MKSTEMP
@@ -248,9 +249,9 @@ file_pipe2file(struct magic_set *ms, int fd, const void *startbuf,
        }
 #else
        tfd = mkstemp(buf);
-       r = errno;
+       te = errno;
        (void)unlink(buf);
-       errno = r;
+       errno = te;
 #endif
        if (tfd == -1) {
                file_error(ms, errno,
@@ -337,13 +338,14 @@ uncompressgzipped(struct magic_set *ms, const unsigned char *old,
        /* XXX: const castaway, via strchr */
        z.next_in = (Bytef *)strchr((const char *)old + data_start,
            old[data_start]);
-       z.avail_in = n - data_start;
+       z.avail_in = CAST(uint32_t, (n - data_start));
        z.next_out = *newch;
        z.avail_out = HOWMANY;
        z.zalloc = Z_NULL;
        z.zfree = Z_NULL;
        z.opaque = Z_NULL;
 
+       /* LINTED bug in header macro */
        rc = inflateInit2(&z, -15);
        if (rc != Z_OK) {
                file_error(ms, 0, "zlib: %s", z.msg);
@@ -371,7 +373,7 @@ uncompressbuf(struct magic_set *ms, int fd, size_t method,
     const unsigned char *old, unsigned char **newch, size_t n)
 {
        int fdin[2], fdout[2];
-       int r;
+       ssize_t r;
 
 #ifdef BUILTIN_DECOMPRESS
         /* FIXME: This doesn't cope with bzip2 */
index 4a5a18ff2ecc81c9d1c283dd86cec4d9d15bff97..6ccdd40b285d31ada15f8f7025b7543c8a09dd28 100644 (file)
@@ -27,7 +27,7 @@
  */
 /*
  * file.h - definitions for file(1) program
- * @(#)$File: file.h,v 1.118 2009/02/03 20:27:51 christos Exp $
+ * @(#)$File: file.h,v 1.119 2009/02/04 18:24:32 christos Exp $
  */
 
 #ifndef __file_h__
@@ -298,7 +298,7 @@ struct mlist {
 #ifdef __cplusplus
 #define CAST(T, b)     static_cast<T>(b)
 #else
-#define CAST(T, b)     (b)
+#define CAST(T, b)     (T)(b)
 #endif
 
 struct level_info {
index ef3ceaeb4b461c0b067be59fe9c4341e74adb97b..567468ec3bb18ee58e75fab9ac39598e9fa5e3e0 100644 (file)
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: fsmagic.c,v 1.58 2008/11/22 17:01:28 chl Exp $")
+FILE_RCSID("@(#)$File: fsmagic.c,v 1.59 2009/02/03 20:27:51 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -106,7 +106,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
        int mime = ms->flags & MAGIC_MIME;
 #ifdef S_IFLNK
        char buf[BUFSIZ+4];
-       int nch;
+       ssize_t nch;
        struct stat tstatbuf;
 #endif
 
index 1fb74228ee254f4e5b8e126ad397f423be389de9..29fdbaa4ef9556ae4c2b80313a2a1ff87f2d4733 100644 (file)
@@ -27,7 +27,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: funcs.c,v 1.52 2009/02/13 18:24:18 christos Exp $")
+FILE_RCSID("@(#)$File: funcs.c,v 1.53 2009/04/07 11:07:00 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -95,7 +95,7 @@ file_printf(struct magic_set *ms, const char *fmt, ...)
 /*VARARGS*/
 private void
 file_error_core(struct magic_set *ms, int error, const char *f, va_list va,
-    uint32_t lineno)
+    size_t lineno)
 {
        /* Only the first error is ok */
        if (ms->event_flags & EVENT_HAD_ERR)
@@ -103,7 +103,7 @@ file_error_core(struct magic_set *ms, int error, const char *f, va_list va,
        if (lineno != 0) {
                free(ms->o.buf);
                ms->o.buf = NULL;
-               file_printf(ms, "line %u: ", lineno);
+               file_printf(ms, "line %zu: ", lineno);
        }
        file_vprintf(ms, f, va);
        if (error > 0)
index c8ec783f3fda01528e2451cc2f87ab42709e85ba..369ce9a98d0061a554d45a82800e8dcd481825d4 100644 (file)
@@ -28,7 +28,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: magic.c,v 1.61 2009/02/20 15:19:20 christos Exp $")
+FILE_RCSID("@(#)$File: magic.c,v 1.62 2009/03/20 21:25:41 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -88,7 +88,7 @@ magic_open(int flags)
        struct magic_set *ms;
        size_t len;
 
-       if ((ms = CAST(magic_set *, calloc((size_t)1,
+       if ((ms = CAST(struct magic_set *, calloc((size_t)1,
            sizeof(struct magic_set)))) == NULL)
                return NULL;
 
index 8217a8e9ceba7e930e77c3b1a32948eaa6463866..2e532bc6b21080c7171effe7d4a70500998a5045 100644 (file)
@@ -26,7 +26,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: readcdf.c,v 1.17 2009/05/05 22:48:51 christos Exp $")
+FILE_RCSID("@(#)$File: readcdf.c,v 1.18 2009/05/06 20:48:22 christos Exp $")
 #endif
 
 #include <stdlib.h>
@@ -160,20 +160,20 @@ cdf_file_summary_info(struct magic_set *ms, const cdf_stream_t *sst)
                switch (si.si_os) {
                case 2:
                        if (file_printf(ms, ", Os: Windows, Version %d.%d",
-                           si.si_os_version & 0xff, si.si_os_version >> 8)
-                           == -1)
+                           si.si_os_version & 0xff,
+                           (uint32_t)si.si_os_version >> 8) == -1)
                                return -1;
                        break;
                case 1:
                        if (file_printf(ms, ", Os: MacOS, Version %d.%d",
-                           si.si_os_version >> 8, si.si_os_version & 0xff)
-                           == -1)
+                           (uint32_t)si.si_os_version >> 8,
+                           si.si_os_version & 0xff) == -1)
                                return -1;
                        break;
                default:
                        if (file_printf(ms, ", Os %d, Version: %d.%d", si.si_os,
-                           si.si_os_version & 0xff, si.si_os_version >> 8)
-                           == -1)
+                           si.si_os_version & 0xff,
+                           (uint32_t)si.si_os_version >> 8) == -1)
                                return -1;
                        break;
                }
index ad5d9727b8f9f21e30fb6fd40e2b77fdea2fe3b2..16955d1ea7d93b69a57dc7b06ee08cc05c4d3d1b 100644 (file)
@@ -27,7 +27,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: readelf.c,v 1.80 2008/10/18 20:47:48 christos Exp $")
+FILE_RCSID("@(#)$File: readelf.c,v 1.81 2008/11/04 16:38:28 christos Exp $")
 #endif
 
 #ifdef BUILTIN_ELF
@@ -1019,7 +1019,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
        const char *linking_style = "statically";
        const char *shared_libraries = "";
        unsigned char nbuf[BUFSIZ];
-       int bufsize;
+       ssize_t bufsize;
        size_t offset, align;
        off_t savedoffset = (off_t)-1;
        struct stat st;
@@ -1074,7 +1074,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
                        shared_libraries = " (uses shared libs)";
                        break;
                case PT_NOTE:
-                       if ((align = xph_align) & 0x80000000) {
+                       if ((align = xph_align) & 0x80000000UL) {
                                if (file_printf(ms, 
                                    ", invalid note alignment 0x%lx",
                                    (unsigned long)align) == -1)
index 6c3aca1640f449272c0f6a3bd24bb83be7e77078..933e5701d135c307b0b2c9065616831c96837ab4 100644 (file)
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: softmagic.c,v 1.134 2009/03/10 20:52:50 christos Exp $")
+FILE_RCSID("@(#)$File: softmagic.c,v 1.135 2009/03/27 22:42:49 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -582,23 +582,23 @@ moffset(struct magic_set *ms, struct magic *m)
 {
        switch (m->type) {
        case FILE_BYTE:
-               return ms->offset + sizeof(char);
+               return CAST(int32_t, (ms->offset + sizeof(char)));
 
        case FILE_SHORT:
        case FILE_BESHORT:
        case FILE_LESHORT:
-               return ms->offset + sizeof(short);
+               return CAST(int32_t, (ms->offset + sizeof(short)));
 
        case FILE_LONG:
        case FILE_BELONG:
        case FILE_LELONG:
        case FILE_MELONG:
-               return ms->offset + sizeof(int32_t);
+               return CAST(int32_t, (ms->offset + sizeof(int32_t)));
 
        case FILE_QUAD:
        case FILE_BEQUAD:
        case FILE_LEQUAD:
-               return ms->offset + sizeof(int64_t);
+               return CAST(int32_t, (ms->offset + sizeof(int64_t)));
 
        case FILE_STRING:
        case FILE_PSTRING:
@@ -612,7 +612,7 @@ moffset(struct magic_set *ms, struct magic *m)
 
                        if (*m->value.s == '\0')
                                p->s[strcspn(p->s, "\n")] = '\0';
-                       t = ms->offset + strlen(p->s);
+                       t = CAST(uint32_t, (ms->offset + strlen(p->s)));
                        if (m->type == FILE_PSTRING)
                                t++;
                        return t;
@@ -622,46 +622,46 @@ moffset(struct magic_set *ms, struct magic *m)
        case FILE_BEDATE:
        case FILE_LEDATE:
        case FILE_MEDATE:
-               return ms->offset + sizeof(time_t);
+               return CAST(int32_t, (ms->offset + sizeof(time_t)));
 
        case FILE_LDATE:
        case FILE_BELDATE:
        case FILE_LELDATE:
        case FILE_MELDATE:
-               return ms->offset + sizeof(time_t);
+               return CAST(int32_t, (ms->offset + sizeof(time_t)));
 
        case FILE_QDATE:
        case FILE_BEQDATE:
        case FILE_LEQDATE:
-               return ms->offset + sizeof(uint64_t);
+               return CAST(int32_t, (ms->offset + sizeof(uint64_t)));
 
        case FILE_QLDATE:
        case FILE_BEQLDATE:
        case FILE_LEQLDATE:
-               return ms->offset + sizeof(uint64_t);
+               return CAST(int32_t, (ms->offset + sizeof(uint64_t)));
 
        case FILE_FLOAT:
        case FILE_BEFLOAT:
        case FILE_LEFLOAT:
-               return ms->offset + sizeof(float);
+               return CAST(int32_t, (ms->offset + sizeof(float)));
 
        case FILE_DOUBLE:
        case FILE_BEDOUBLE:
        case FILE_LEDOUBLE:
-               return ms->offset + sizeof(double);
-               break;
+               return CAST(int32_t, (ms->offset + sizeof(double)));
 
        case FILE_REGEX:
                if ((m->str_flags & REGEX_OFFSET_START) != 0)
-                       return ms->search.offset;
+                       return CAST(int32_t, ms->search.offset);
                else
-                       return ms->search.offset + ms->search.rm_len;
+                       return CAST(int32_t, (ms->search.offset +
+                           ms->search.rm_len));
 
        case FILE_SEARCH:
                if ((m->str_flags & REGEX_OFFSET_START) != 0)
-                       return ms->search.offset;
+                       return CAST(int32_t, ms->search.offset);
                else
-                       return ms->search.offset + m->vallen;
+                       return CAST(int32_t, (ms->search.offset + m->vallen));
 
        case FILE_DEFAULT:
                return ms->offset;
@@ -924,7 +924,7 @@ mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir,
        if (indir == 0) {
                switch (type) {
                case FILE_SEARCH:
-                       ms->search.s = (const char *)s + offset;
+                       ms->search.s = CAST(const char *, s) + offset;
                        ms->search.s_len = nbytes - offset;
                        ms->search.offset = offset;
                        return 0;
@@ -942,18 +942,19 @@ mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir,
                                ms->search.s = NULL;
                                return 0;
                        }
-                       buf = (const char *)s + offset;
-                       end = last = (const char *)s + nbytes;
+                       buf = CAST(const char *, s) + offset;
+                       end = last = CAST(const char *, s) + nbytes;
                        /* mget() guarantees buf <= last */
-                       for (lines = linecnt, b = buf;
-                            lines && ((b = memchr(c = b, '\n', end - b)) || (b = memchr(c, '\r', end - c)));
+                       for (lines = linecnt, b = buf; lines &&
+                            ((b = memchr(c = b, '\n', CAST(size_t, (end - b))))
+                            || (b = memchr(c, '\r', CAST(size_t, (end - c)))));
                             lines--, b++) {
                                last = b;
                                if (b[0] == '\r' && b[1] == '\n')
                                        b++;
                        }
                        if (lines)
-                               last = (const char *)s + nbytes;
+                               last = CAST(const char *, s) + nbytes;
 
                        ms->search.s = buf;
                        ms->search.s_len = last - buf;