From d4e9f45ebdbb1408e7c0c2aacdc472b7df87ca28 Mon Sep 17 00:00:00 2001
From: Brian Carrier <carrier@sleuthkit.org>
Date: Sat, 28 Apr 2018 12:50:10 -0400
Subject: [PATCH] fixed various compile warnings.

---
 bindings/java/jni/Makefile.am    |  3 ++-
 configure.ac                     |  4 +---
 samples/Makefile.am              |  1 +
 tests/Makefile.am                |  2 +-
 tools/autotools/Makefile.am      |  3 ++-
 tools/fiwalk/plugins/Makefile.am |  1 +
 tools/fiwalk/src/Makefile.am     |  2 +-
 tools/fstools/Makefile.am        |  1 +
 tools/hashtools/Makefile.am      |  1 +
 tools/imgtools/Makefile.am       |  1 +
 tools/srchtools/Makefile.am      |  2 ++
 tools/vstools/Makefile.am        |  1 +
 travis_build.sh                  |  2 +-
 tsk/auto/Makefile.am             |  4 ++--
 tsk/auto/auto_db.cpp             |  8 ++++----
 tsk/auto/tsk_case_db.h           |  2 +-
 tsk/base/tsk_base.h              |  2 +-
 tsk/fs/dcalc_lib.c               |  4 ++--
 tsk/fs/dcat_lib.c                |  2 +-
 tsk/fs/dls_lib.c                 |  4 ++--
 tsk/fs/ext2fs.c                  |  4 ++--
 tsk/fs/ext2fs_journal.c          |  4 ++--
 tsk/fs/fatfs.c                   |  2 +-
 tsk/fs/fatfs_meta.c              |  2 +-
 tsk/fs/ffs.c                     |  4 ++--
 tsk/fs/fs_attr.c                 | 10 +++++-----
 tsk/fs/fs_block.c                |  2 +-
 tsk/fs/fs_io.c                   |  2 +-
 tsk/fs/fs_open.c                 |  2 +-
 tsk/fs/fs_types.c                |  4 ++--
 tsk/fs/iso9660_dent.c            |  4 ++--
 tsk/fs/lzvn.c                    |  2 ++
 tsk/fs/ntfs.c                    | 10 +++++-----
 tsk/fs/ntfs_dent.cpp             |  1 +
 tsk/fs/tsk_ntfs.h                |  2 +-
 tsk/fs/unix_misc.c               |  2 +-
 tsk/img/aff.c                    |  4 ++--
 tsk/img/img_types.c              |  2 +-
 tsk/img/tsk_img.h                |  2 +-
 tsk/vs/mm_types.c                |  2 +-
 unit_tests/base/Makefile.am      |  1 +
 41 files changed, 65 insertions(+), 53 deletions(-)

diff --git a/bindings/java/jni/Makefile.am b/bindings/java/jni/Makefile.am
index 175b5c3ac..b85e68a19 100644
--- a/bindings/java/jni/Makefile.am
+++ b/bindings/java/jni/Makefile.am
@@ -1,4 +1,5 @@
-AM_CPPFLAGS = -I../../.. -I$(srcdir)/../../.. $(JNI_CPPFLAGS)
+AM_CPPFLAGS = -I../../.. -I$(srcdir)/../../.. $(JNI_CPPFLAGS) 
+AM_CXXFLAGS += -Wno-unused-command-line-argument -Wno-overloaded-virtual
 EXTRA_DIST = .indent.pro 
 
 lib_LTLIBRARIES = libtsk_jni.la
diff --git a/configure.ac b/configure.ac
index 1a5c6dd6b..d05fdf2cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -386,9 +386,7 @@ AC_CHECK_FUNCS([getline])
 AC_SEARCH_LIBS(regexec, [regex], , AC_MSG_ERROR([missing regex]))
 
 dnl Enable compliation warnings
-dnl TODO: Maybe turn on -Wpedantic after fixing all the other warnings?
-dnl WARNINGS='-Wall -Wextra -Wpedantic'
-WARNINGS='-Wall -Wextra -Wpedantic'
+WARNINGS='-Wall -Wextra -Wno-unused-parameter'
 
 AC_SUBST(AM_CFLAGS, $WARNINGS)
 AC_SUBST(AM_CXXFLAGS, $WARNINGS)
diff --git a/samples/Makefile.am b/samples/Makefile.am
index 9d534772a..7fc68a25a 100644
--- a/samples/Makefile.am
+++ b/samples/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I.. -I$(srcdir)/..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../tsk/libtsk.la
 AM_LDFLAGS = -static
 EXTRA_DIST = .indent.pro 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 59b508e0d..4f522cd82 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,6 +1,6 @@
 AM_CPPFLAGS = -I.. -I$(srcdir)/..
 AM_CFLAGS += $(PTHREAD_CFLAGS)
-AM_CXXFLAGS += $(PTHREAD_CFLAGS)
+AM_CXXFLAGS += -Wno-unused-command-line-argument $(PTHREAD_CFLAGS)
 LDADD = ../tsk/libtsk.la
 LDFLAGS += -static $(PTHREAD_LIBS)
 EXTRA_DIST = .indent.pro runtests.sh
diff --git a/tools/autotools/Makefile.am b/tools/autotools/Makefile.am
index 0c387d6fc..8058968f8 100644
--- a/tools/autotools/Makefile.am
+++ b/tools/autotools/Makefile.am
@@ -1,4 +1,5 @@
-AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CPPFLAGS = -I../.. -I$(srcdir)/../.. 
+AM_CXXFLAGS += -Wno-overloaded-virtual -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
diff --git a/tools/fiwalk/plugins/Makefile.am b/tools/fiwalk/plugins/Makefile.am
index 54b3460a8..64513bceb 100644
--- a/tools/fiwalk/plugins/Makefile.am
+++ b/tools/fiwalk/plugins/Makefile.am
@@ -1,3 +1,4 @@
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 bin_PROGRAMS = jpeg_extract 
 jpeg_extract_SOURCES = jpeg_extract.cpp
 
diff --git a/tools/fiwalk/src/Makefile.am b/tools/fiwalk/src/Makefile.am
index cf6af570b..dc92ebfc3 100644
--- a/tools/fiwalk/src/Makefile.am
+++ b/tools/fiwalk/src/Makefile.am
@@ -1,6 +1,6 @@
 bin_PROGRAMS = fiwalk 
-
 AM_CPPFLAGS = -I../../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../../tsk/libtsk.la
 
 EXTRA_DIST = README_PLUGINS.txt ficonfig.txt \
diff --git a/tools/fstools/Makefile.am b/tools/fstools/Makefile.am
index e2ecdbd98..cb9a138ca 100644
--- a/tools/fstools/Makefile.am
+++ b/tools/fstools/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro fscheck.cpp
diff --git a/tools/hashtools/Makefile.am b/tools/hashtools/Makefile.am
index 36aa48e6d..4241b2aab 100644
--- a/tools/hashtools/Makefile.am
+++ b/tools/hashtools/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro md5.c sha1.c
diff --git a/tools/imgtools/Makefile.am b/tools/imgtools/Makefile.am
index aebc96688..30d3a25d3 100644
--- a/tools/imgtools/Makefile.am
+++ b/tools/imgtools/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
diff --git a/tools/srchtools/Makefile.am b/tools/srchtools/Makefile.am
index 665a6d2b8..70a9af2bd 100644
--- a/tools/srchtools/Makefile.am
+++ b/tools/srchtools/Makefile.am
@@ -1,6 +1,8 @@
 bin_PROGRAMS = srch_strings sigfind
 EXTRA_DIST = .indent.pro
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
+AM_CFLAGS += -Wno-unused-command-line-argument
 
 srch_strings_SOURCES = srch_strings.c
 
diff --git a/tools/vstools/Makefile.am b/tools/vstools/Makefile.am
index 13c1d3564..38475365d 100644
--- a/tools/vstools/Makefile.am
+++ b/tools/vstools/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la
 LDFLAGS += -static
 EXTRA_DIST = .indent.pro
diff --git a/travis_build.sh b/travis_build.sh
index 1ec7fb70e..a767b8534 100755
--- a/travis_build.sh
+++ b/travis_build.sh
@@ -6,5 +6,5 @@ if test ${TRAVIS_OS_NAME} = "linux"; then
 elif test ${TRAVIS_OS_NAME} = "osx"; then
 	brew install ant	
 fi
-./bootstrap && ./configure --prefix=/usr && make
+./bootstrap && ./configure --prefix=/usr && make > /dev/null
 cd bindings/java/ && ant dist-PostgreSQL
diff --git a/tsk/auto/Makefile.am b/tsk/auto/Makefile.am
index e9171b6f9..963dd9829 100755
--- a/tsk/auto/Makefile.am
+++ b/tsk/auto/Makefile.am
@@ -1,6 +1,6 @@
 AM_CPPFLAGS = -I../.. -I$(srcdir)/../..
-AM_CFLAGS += -Wmultichar -Wstrict-null-sentinel -Woverloaded-virtual -Wsign-promo
-AM_CXXFLAGS += -Wmultichar -Wstrict-null-sentinel -Woverloaded-virtual -Wsign-promo
+AM_CFLAGS += -Wmultichar -Wsign-promo -Wno-overloaded-virtual
+AM_CXXFLAGS += -Wmultichar -Wsign-promo -Wno-overloaded-virtual
 EXTRA_DIST = .indent.pro
 
 noinst_LTLIBRARIES = libtskauto.la
diff --git a/tsk/auto/auto_db.cpp b/tsk/auto/auto_db.cpp
index 4b28f8e54..db5b2edc7 100644
--- a/tsk/auto/auto_db.cpp
+++ b/tsk/auto/auto_db.cpp
@@ -40,7 +40,7 @@ TskAutoDb::TskAutoDb(TskDb * a_db, TSK_HDB_INFO * a_NSRLDb, TSK_HDB_INFO * a_kno
     m_curFsId = 0;
     m_curFileId = 0;
     m_curUnallocDirId = 0;
-    m_curDirId = 0;
+    m_curDirAddr = 0;
     m_curDirPath = "";
     m_blkMapFlag = false;
     m_vsFound = false;
@@ -729,13 +729,13 @@ TskAutoDb::processFile(TSK_FS_FILE * fs_file, const char *path)
      * is to grab the parent folder from files once we return back 
      * into a folder when we are doing our depth-first recursion. */
     if (isDir(fs_file)) {
-        m_curDirId = fs_file->name->meta_addr;
+        m_curDirAddr = fs_file->name->meta_addr;
         tsk_take_lock(&m_curDirPathLock);
         m_curDirPath = string(path) + fs_file->name->name;
         tsk_release_lock(&m_curDirPathLock);
     }
-    else if (m_curDirId != fs_file->name->par_addr) {
-        m_curDirId = fs_file->name->par_addr;
+    else if (m_curDirAddr != fs_file->name->par_addr) {
+        m_curDirAddr = fs_file->name->par_addr;
         tsk_take_lock(&m_curDirPathLock);
         m_curDirPath = path;
         tsk_release_lock(&m_curDirPathLock);
diff --git a/tsk/auto/tsk_case_db.h b/tsk/auto/tsk_case_db.h
index d3c1eec04..851c577ee 100644
--- a/tsk/auto/tsk_case_db.h
+++ b/tsk/auto/tsk_case_db.h
@@ -128,7 +128,7 @@ class TskAutoDb:public TskAuto {
     int64_t m_curVolId;     ///< Object ID of volume currently being processed
     int64_t m_curFsId;      ///< Object ID of file system currently being processed
     int64_t m_curFileId;    ///< Object ID of file currently being processed
-    int64_t m_curDirId;		///< Object ID of the directory currently being processed
+    TSK_INUM_T m_curDirAddr;		///< Meta address the directory currently being processed
     int64_t m_curUnallocDirId;	
     string m_curDirPath;		//< Path of the current directory being processed
     tsk_lock_t m_curDirPathLock; //< protects concurrent access to m_curDirPath
diff --git a/tsk/base/tsk_base.h b/tsk/base/tsk_base.h
index 85c04f312..cdd9bfffd 100644
--- a/tsk/base/tsk_base.h
+++ b/tsk/base/tsk_base.h
@@ -288,7 +288,7 @@ extern "C" {
     typedef enum {
         TSK_WALK_CONT = 0x0,    ///< Walk function should continue to next object
         TSK_WALK_STOP = 0x1,    ///< Walk function should stop processing units and return OK
-        TSK_WALK_ERROR = 0x2,   ///< Walk function should stop processing units and return error
+        TSK_WALK_ERROR = 0x2   ///< Walk function should stop processing units and return error
     } TSK_WALK_RET_ENUM;
 
 
diff --git a/tsk/fs/dcalc_lib.c b/tsk/fs/dcalc_lib.c
index 04477c9c1..4d0a57d96 100644
--- a/tsk/fs/dcalc_lib.c
+++ b/tsk/fs/dcalc_lib.c
@@ -106,7 +106,7 @@ count_slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off,
             "  Buffer: %" PRIuSIZE "\n", data->flen, size);
 
     /* This is not the last data unit */
-    if (data->flen >= size) {
+    if (data->flen >= (TSK_OFF_T)size) {
         data->flen -= size;
     }
     /* We have passed the end of the allocated space */
@@ -119,7 +119,7 @@ count_slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off,
         }
     }
     /* This is the last data unit and there is unused space */
-    else if (data->flen < size) {
+    else if (data->flen < (TSK_OFF_T)size) {
         if (data->count-- == 0) {
             tsk_printf("%" PRIuDADDR "\n", addr);
             data->found = 1;
diff --git a/tsk/fs/dcat_lib.c b/tsk/fs/dcat_lib.c
index 7034dbaaa..e05e2cc2d 100644
--- a/tsk/fs/dcat_lib.c
+++ b/tsk/fs/dcat_lib.c
@@ -58,7 +58,7 @@ tsk_fs_blkcat(TSK_FS_INFO * fs, TSK_FS_BLKCAT_FLAG_ENUM lclflags,
     TSK_DADDR_T addr, TSK_DADDR_T read_num_units)
 {
     char *buf;
-    int i;
+    TSK_DADDR_T i;
 
     if (lclflags & TSK_FS_BLKCAT_STAT) {
         stats(fs);
diff --git a/tsk/fs/dls_lib.c b/tsk/fs/dls_lib.c
index 910d9559f..68a1a5a7e 100644
--- a/tsk/fs/dls_lib.c
+++ b/tsk/fs/dls_lib.c
@@ -122,7 +122,7 @@ slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off, TSK_DADDR_T addr,
             size);
 
     /* This is not the last data unit */
-    if (data->flen >= size) {
+    if (data->flen >= (TSK_OFF_T)size) {
         data->flen -= size;
     }
     /* We have passed the end of the allocated space */
@@ -136,7 +136,7 @@ slack_file_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off, TSK_DADDR_T addr,
         }
     }
     /* This is the last data unit and there is unused space */
-    else if (data->flen < size) {
+    else if (data->flen < (TSK_OFF_T)size) {
         /* Clear the used space and print it */
         memset(buf, 0, (size_t) data->flen);
         if (fwrite(buf, size, 1, stdout) != 1) {
diff --git a/tsk/fs/ext2fs.c b/tsk/fs/ext2fs.c
index 316158fc1..2c530d412 100644
--- a/tsk/fs/ext2fs.c
+++ b/tsk/fs/ext2fs.c
@@ -135,7 +135,7 @@ static uint8_t
             TSK_OFF_T offs;
             ssize_t cnt;
 
-            if (gd_size < sizeof(ext4fs_gd))
+            if (gd_size < (int)sizeof(ext4fs_gd))
                 gd_size = sizeof(ext4fs_gd);
 
             if (ext2fs->ext4_grp_buf == NULL) {
@@ -180,7 +180,7 @@ static uint8_t
     else {
         TSK_OFF_T offs;
         ssize_t cnt;
-        if (gd_size < sizeof(ext2fs_gd))
+        if (gd_size < (int)sizeof(ext2fs_gd))
             gd_size = sizeof(ext2fs_gd);
 
         if (ext2fs->grp_buf == NULL) {
diff --git a/tsk/fs/ext2fs_journal.c b/tsk/fs/ext2fs_journal.c
index 73674c528..61bdb35bb 100644
--- a/tsk/fs/ext2fs_journal.c
+++ b/tsk/fs/ext2fs_journal.c
@@ -154,7 +154,7 @@ ext2fs_jentry_walk(TSK_FS_INFO * fs, int flags,
         return 1;
     }
 
-    if (jinfo->fs_file->meta->size !=
+    if ((TSK_DADDR_T)jinfo->fs_file->meta->size !=
         (jinfo->last_block + 1) * jinfo->bsize) {
         tsk_error_reset();
         tsk_error_set_errno(TSK_ERR_FS_ARG);
@@ -519,7 +519,7 @@ ext2fs_jblk_walk(TSK_FS_INFO * fs, TSK_DADDR_T start, TSK_DADDR_T end,
         return 1;
     }
 
-    if (jinfo->fs_file->meta->size !=
+    if ((TSK_DADDR_T)jinfo->fs_file->meta->size !=
         (jinfo->last_block + 1) * jinfo->bsize) {
         tsk_error_reset();
         tsk_error_set_errno(TSK_ERR_FS_UNSUPFUNC);
diff --git a/tsk/fs/fatfs.c b/tsk/fs/fatfs.c
index d26f259cd..96fe3b3fc 100644
--- a/tsk/fs/fatfs.c
+++ b/tsk/fs/fatfs.c
@@ -648,7 +648,7 @@ fatfs_block_walk(TSK_FS_INFO * fs, TSK_DADDR_T a_start_blk,
         if ((a_flags & TSK_FS_BLOCK_WALK_FLAG_AONLY) == 0) {
             cnt = tsk_fs_read_block
                 (fs, addr, data_buf, fs->block_size * read_size);
-            if (cnt != fs->block_size * read_size) {
+            if (cnt != (ssize_t)(fs->block_size * read_size)) {
                 if (cnt >= 0) {
                     tsk_error_reset();
                     tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/fs/fatfs_meta.c b/tsk/fs/fatfs_meta.c
index f2cd6c62c..b219779d8 100755
--- a/tsk/fs/fatfs_meta.c
+++ b/tsk/fs/fatfs_meta.c
@@ -1373,7 +1373,7 @@ fatfs_inode_walk(TSK_FS_INFO *a_fs, TSK_INUM_T a_start_inum,
             /* Read in a cluster. */
             cnt = tsk_fs_read_block
                 (a_fs, sect, dino_buf, num_sectors_to_process << fatfs->ssize_sh);
-            if (cnt != (num_sectors_to_process << fatfs->ssize_sh)) {
+            if (cnt != (ssize_t)(num_sectors_to_process << fatfs->ssize_sh)) {
                 if (cnt >= 0) {
                     tsk_error_reset();
                     tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/fs/ffs.c b/tsk/fs/ffs.c
index 61c5e6572..ad8894700 100644
--- a/tsk/fs/ffs.c
+++ b/tsk/fs/ffs.c
@@ -85,8 +85,8 @@ ffs_group_load(FFS_INFO * ffs, FFS_GRPNUM_T grp_num)
 
         /* Perform a sanity check on the data to make sure offsets are in range */
         cg = (ffs_cgd *) ffs->grp_buf;
-        if ((tsk_gets32(fs->endian, cg->cg_iusedoff) > ffs->ffsbsize_b)
-            || (tsk_gets32(fs->endian, cg->cg_freeoff) > ffs->ffsbsize_b)) {
+        if ((tsk_gets32(fs->endian, cg->cg_iusedoff) > (int)ffs->ffsbsize_b)
+            || (tsk_gets32(fs->endian, cg->cg_freeoff) > (int)ffs->ffsbsize_b)) {
             tsk_error_reset();
             tsk_error_set_errno(TSK_ERR_FS_CORRUPT);
             tsk_error_set_errstr2("ffs_group_load: Group %" PRI_FFSGRP
diff --git a/tsk/fs/fs_attr.c b/tsk/fs/fs_attr.c
index a7d80da64..5703ab74d 100644
--- a/tsk/fs/fs_attr.c
+++ b/tsk/fs/fs_attr.c
@@ -797,7 +797,7 @@ tsk_fs_attr_walk_res(const TSK_FS_ATTR * fs_attr,
     retval = TSK_WALK_CONT;
     for (off = 0; off < fs_attr->size; off += read_len) {
 
-        if (fs_attr->size - off > buf_len)
+        if (fs_attr->size - off > (TSK_OFF_T)buf_len)
             read_len = buf_len;
         else
             read_len = (size_t) (fs_attr->size - off);
@@ -1133,7 +1133,7 @@ tsk_fs_attr_read(const TSK_FS_ATTR * a_fs_attr, TSK_OFF_T a_offset,
         }
 
         len_toread = a_len;
-        if (a_offset + a_len > a_fs_attr->size) {
+        if (a_offset + (TSK_OFF_T)a_len > a_fs_attr->size) {
             len_toread = (size_t) (a_fs_attr->size - a_offset);
             memset(&a_buf[len_toread], 0, a_len - len_toread);
         }
@@ -1167,12 +1167,12 @@ tsk_fs_attr_read(const TSK_FS_ATTR * a_fs_attr, TSK_OFF_T a_offset,
         // determine how many bytes we can copy
         len_toread = a_len;
         if (a_flags & TSK_FS_FILE_READ_FLAG_SLACK) {
-            if (a_offset + a_len > a_fs_attr->nrd.allocsize)
+            if (a_offset + (TSK_OFF_T)a_len > a_fs_attr->nrd.allocsize)
                 len_toread =
                     (size_t) (a_fs_attr->nrd.allocsize - a_offset);
         }
         else {
-            if (a_offset + a_len > a_fs_attr->size)
+            if (a_offset + (TSK_OFF_T)a_len > a_fs_attr->size)
                 len_toread = (size_t) (a_fs_attr->size - a_offset);
         }
         // wipe the buffer we won't read into
@@ -1259,7 +1259,7 @@ tsk_fs_attr_read(const TSK_FS_ATTR * a_fs_attr, TSK_OFF_T a_offset,
                 cnt =
                     tsk_fs_read(fs, fs_offset_b,
                     &a_buf[len_toread - len_remain], len_inrun);
-                if (cnt != len_inrun) {
+                if (cnt != (ssize_t)len_inrun) {
                     if (cnt >= 0) {
                         tsk_error_reset();
                         tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/fs/fs_block.c b/tsk/fs/fs_block.c
index 47b27e191..946c45aea 100644
--- a/tsk/fs/fs_block.c
+++ b/tsk/fs/fs_block.c
@@ -129,7 +129,7 @@ tsk_fs_block_get_flag(TSK_FS_INFO * a_fs, TSK_FS_BLOCK * a_fs_block,
         cnt =
             tsk_img_read(a_fs->img_info, a_fs->offset + offs,
             a_fs_block->buf, len);
-        if (cnt != len) {
+        if (cnt != (ssize_t)len) {
             return NULL;
         }
     }
diff --git a/tsk/fs/fs_io.c b/tsk/fs/fs_io.c
index 760cc8da6..c8f960c17 100644
--- a/tsk/fs/fs_io.c
+++ b/tsk/fs/fs_io.c
@@ -51,7 +51,7 @@ fs_prepost_read(TSK_FS_INFO * a_fs, TSK_OFF_T a_off, char *a_buf,
         TSK_DADDR_T blk = cur_off / a_fs->block_size;
         size_t read_len = a_fs->block_size - cur_off % a_fs->block_size;
 
-        if (read_len + cur_off > end_off)
+        if ((TSK_OFF_T)read_len + cur_off > end_off)
             read_len = (size_t) (end_off - cur_off);
 
         read_off =
diff --git a/tsk/fs/fs_open.c b/tsk/fs/fs_open.c
index 6f7404922..fe27cb819 100644
--- a/tsk/fs/fs_open.c
+++ b/tsk/fs/fs_open.c
@@ -85,7 +85,6 @@ tsk_fs_open_img(TSK_IMG_INFO * a_img_info, TSK_OFF_T a_offset,
 {
     TSK_FS_INFO *fs_info, *fs_first = NULL;
     const char *name_first;
-    int i;
 
     const struct {
         char* name;
@@ -115,6 +114,7 @@ tsk_fs_open_img(TSK_IMG_INFO * a_img_info, TSK_OFF_T a_offset,
      * We need to try all of them in case more than one matches
      */
     if (a_ftype == TSK_FS_TYPE_DETECT) {
+        unsigned long i;
         if (tsk_verbose)
             tsk_fprintf(stderr,
                 "fsopen: Auto detection mode at offset %" PRIuOFF "\n",
diff --git a/tsk/fs/fs_types.c b/tsk/fs/fs_types.c
index 38db26a4f..aea78769e 100644
--- a/tsk/fs/fs_types.c
+++ b/tsk/fs/fs_types.c
@@ -56,7 +56,7 @@ static FS_TYPES fs_type_table[] = {
     {"ufs1", TSK_FS_TYPE_FFS1, "UFS1"},
     {"ufs2", TSK_FS_TYPE_FFS2, "UFS2"},
     {"yaffs2", TSK_FS_TYPE_YAFFS2, "YAFFS2"},
-    {0},
+    {0,0,""}
 };
 
 static FS_TYPES fs_legacy_type_table[] = {
@@ -70,7 +70,7 @@ static FS_TYPES fs_legacy_type_table[] = {
     {"netbsd", TSK_FS_TYPE_FFS1, "NetBSD FFS"},
     {"openbsd", TSK_FS_TYPE_FFS1, "OpenBSD FFS"},
     {"solaris", TSK_FS_TYPE_FFS1B, "Solaris FFS"},
-    {0},
+    {0,0,""}
 };
 
 
diff --git a/tsk/fs/iso9660_dent.c b/tsk/fs/iso9660_dent.c
index dc8438da1..4dc4d61bf 100644
--- a/tsk/fs/iso9660_dent.c
+++ b/tsk/fs/iso9660_dent.c
@@ -158,7 +158,7 @@ iso9660_proc_dir(TSK_FS_INFO * a_fs, TSK_FS_DIR * a_fs_dir, char *buf,
              * that had a file with 0 bytes with the same starting block as another
              * file. */
             for (in = iso->in_list; in; in = in->next) {
-                if (in->dentry_offset == dir_offs + buf_idx)
+                if (in->dentry_offset == dir_offs + (TSK_OFF_T)buf_idx)
                     break;
             }
 
@@ -285,7 +285,7 @@ iso9660_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir,
         return TSK_ERR;
 
     cnt = tsk_fs_file_read(fs_dir->fs_file, 0, buf, length, 0);
-    if (cnt != length) {
+    if (cnt != (ssize_t)length) {
         if (cnt >= 0) {
             tsk_error_reset();
             tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/fs/lzvn.c b/tsk/fs/lzvn.c
index a923122ac..f03afefa2 100644
--- a/tsk/fs/lzvn.c
+++ b/tsk/fs/lzvn.c
@@ -95,9 +95,11 @@ LZFSE_INLINE uint64_t load8(const void *ptr) {
 }
 
 /*! @abstract Store bytes to memory location DST. */
+/*
 LZFSE_INLINE void store2(void *ptr, uint16_t data) {
   memcpy(ptr, &data, sizeof data);
 }
+*/
 
 LZFSE_INLINE void store4(void *ptr, uint32_t data) {
   memcpy(ptr, &data, sizeof data);
diff --git a/tsk/fs/ntfs.c b/tsk/fs/ntfs.c
index f6ae77de4..84bc9bc2f 100755
--- a/tsk/fs/ntfs.c
+++ b/tsk/fs/ntfs.c
@@ -293,7 +293,7 @@ ntfs_dinode_lookup(NTFS_INFO * a_ntfs, char *a_buf, TSK_INUM_T a_mftnum)
         ssize_t cnt;
         /* read the first part into mft */
         cnt = tsk_fs_read(&a_ntfs->fs_info, mftaddr_b, a_buf, mftaddr_len);
-        if (cnt != mftaddr_len) {
+        if (cnt != (ssize_t)mftaddr_len) {
             if (cnt >= 0) {
                 tsk_error_reset();
                 tsk_error_set_errno(TSK_ERR_FS_READ);
@@ -309,7 +309,7 @@ ntfs_dinode_lookup(NTFS_INFO * a_ntfs, char *a_buf, TSK_INUM_T a_mftnum)
             (&a_ntfs->fs_info, mftaddr2_b,
             (char *) ((uintptr_t) a_buf + (uintptr_t) mftaddr_len),
             a_ntfs->mft_rsize_b - mftaddr_len);
-        if (cnt != a_ntfs->mft_rsize_b - mftaddr_len) {
+        if (cnt != (ssize_t)(a_ntfs->mft_rsize_b - mftaddr_len)) {
             if (cnt >= 0) {
                 tsk_error_reset();
                 tsk_error_set_errno(TSK_ERR_FS_READ);
@@ -1530,7 +1530,7 @@ ntfs_file_read_special(const TSK_FS_ATTR * a_fs_attr,
                     "ntfs_file_read_special: Returning 0s for read past end of initsize (%"
                     PRIuINUM ")\n", a_fs_attr->fs_file->meta->addr);
 
-            if (a_offset + a_len > a_fs_attr->nrd.allocsize)
+            if (a_offset + (TSK_OFF_T)a_len > a_fs_attr->nrd.allocsize)
                 len = (ssize_t) (a_fs_attr->nrd.allocsize - a_offset);
             else
                 len = (ssize_t) a_len;
@@ -3657,7 +3657,7 @@ ntfs_load_secure(NTFS_INFO * ntfs)
     cnt =
         tsk_fs_attr_read(fs_attr_sii, 0, sii_buffer.buffer,
         sii_buffer.size, TSK_FS_FILE_READ_FLAG_NONE);
-    if (cnt != sii_buffer.size) {
+    if (cnt != (ssize_t)sii_buffer.size) {
         if (tsk_verbose)
             tsk_fprintf(stderr,
                 "ntfs_load_secure: error reading $Secure:$SII attribute: %s\n",
@@ -3720,7 +3720,7 @@ ntfs_load_secure(NTFS_INFO * ntfs)
         tsk_fs_attr_read(fs_attr_sds, 0,
         ntfs->sds_data.buffer, ntfs->sds_data.size,
         TSK_FS_FILE_READ_FLAG_NONE);
-    if (cnt != ntfs->sds_data.size) {
+    if (cnt != (ssize_t)ntfs->sds_data.size) {
         if (tsk_verbose)
             tsk_fprintf(stderr,
                 "ntfs_load_secure: error reading $Secure:$SDS attribute: %s\n",
diff --git a/tsk/fs/ntfs_dent.cpp b/tsk/fs/ntfs_dent.cpp
index ccbe67d65..e222d5be0 100644
--- a/tsk/fs/ntfs_dent.cpp
+++ b/tsk/fs/ntfs_dent.cpp
@@ -218,6 +218,7 @@ ntfs_parent_act(TSK_FS_FILE * fs_file, void * /*ptr*/)
 
     if ((fs_file->meta->flags & TSK_FS_META_FLAG_ALLOC) &&
         fs_file->meta->type == TSK_FS_META_TYPE_REG) {
+            // @@@ This doesn't seem to be used anywhere....
             if (ntfs->alloc_file_count == -1)
                 ntfs->alloc_file_count = 1;
             else
diff --git a/tsk/fs/tsk_ntfs.h b/tsk/fs/tsk_ntfs.h
index 2045ba4e1..f08a47853 100644
--- a/tsk/fs/tsk_ntfs.h
+++ b/tsk/fs/tsk_ntfs.h
@@ -730,7 +730,7 @@ extern "C" {
         NTFS_SXX_BUFFER sds_data;       // (r/w shared - lock)
 #endif
 
-        uint32_t alloc_file_count;      // number of allocated regular files, will be -1
+        int alloc_file_count;      // number of allocated regular files, will be -1
                                         // until a directory is opened.
         NTFS_USNJINFO *usnjinfo;        // update sequence number journal
     } NTFS_INFO;
diff --git a/tsk/fs/unix_misc.c b/tsk/fs/unix_misc.c
index 85ff4d4d2..5ce762b2d 100644
--- a/tsk/fs/unix_misc.c
+++ b/tsk/fs/unix_misc.c
@@ -174,7 +174,7 @@ unix_make_data_run_indirect(TSK_FS_INFO * fs, TSK_FS_ATTR * fs_attr,
         ssize_t cnt;
         // read the data into the scratch buffer
         cnt = tsk_fs_read_block(fs, addr, buf[0], fs_bufsize);
-        if (cnt != fs_bufsize) {
+        if (cnt != (ssize_t)fs_bufsize) {
             if (cnt >= 0) {
                 tsk_error_reset();
                 tsk_error_set_errno(TSK_ERR_FS_READ);
diff --git a/tsk/img/aff.c b/tsk/img/aff.c
index 81f02f32e..6e4b78670 100644
--- a/tsk/img/aff.c
+++ b/tsk/img/aff.c
@@ -38,7 +38,7 @@ aff_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset, char *buf, size_t len)
     }
 
     if (aff_info->seek_pos != offset) {
-        if (af_seek(aff_info->af_file, offset, SEEK_SET) != offset) {
+        if (af_seek(aff_info->af_file, offset, SEEK_SET) != (uint64_t)offset) {
             tsk_error_reset();
             // @@@ ADD more specific error messages
             tsk_error_set_errno(TSK_ERR_IMG_SEEK);
@@ -66,7 +66,7 @@ aff_read(TSK_IMG_INFO * img_info, TSK_OFF_T offset, char *buf, size_t len)
         // @@@ We could improve this if there is an AFF call
         // to see if the data exists or not
         if ((af_eof(aff_info->af_file) == 0) &&
-            (offset + len < img_info->size)) {
+            (offset + (TSK_OFF_T)len < img_info->size)) {
             memset(buf, 0, len);
             cnt = len;
         }
diff --git a/tsk/img/img_types.c b/tsk/img/img_types.c
index 9897299dd..5a36a76cd 100644
--- a/tsk/img/img_types.c
+++ b/tsk/img/img_types.c
@@ -46,7 +46,7 @@ static IMG_TYPES img_open_table[] = {
 #if HAVE_LIBVHDI
     {"vhd", TSK_IMG_TYPE_VHD_VHD, "Virtual Hard Drive (Microsoft)"},
 #endif
-    {0},
+    {0,0,""},
 };
 
 
diff --git a/tsk/img/tsk_img.h b/tsk/img/tsk_img.h
index b41211602..131f23c33 100644
--- a/tsk/img/tsk_img.h
+++ b/tsk/img/tsk_img.h
@@ -69,7 +69,7 @@ extern "C" {
         TSK_IMG_TYPE_VHD_VHD = 0x0100,   ///< VHD version
         TSK_IMG_TYPE_EXTERNAL = 0x1000,  ///< external defined format which at least implements TSK_IMG_INFO, used by pytsk
 
-        TSK_IMG_TYPE_UNSUPP = 0xffff,   ///< Unsupported disk image type
+        TSK_IMG_TYPE_UNSUPP = 0xffff   ///< Unsupported disk image type
     } TSK_IMG_TYPE_ENUM;
 
 #define TSK_IMG_INFO_CACHE_NUM  32
diff --git a/tsk/vs/mm_types.c b/tsk/vs/mm_types.c
index 178c4e7a3..9cfd1370d 100644
--- a/tsk/vs/mm_types.c
+++ b/tsk/vs/mm_types.c
@@ -29,7 +29,7 @@ VS_TYPES vs_open_table[] = {
     {"sun", TSK_VS_TYPE_SUN,
         "Sun Volume Table of Contents (Solaris)"},
     {"gpt", TSK_VS_TYPE_GPT, "GUID Partition Table (EFI)"},
-    {0},
+    {0, 0, ""},
 };
 
 /**
diff --git a/unit_tests/base/Makefile.am b/unit_tests/base/Makefile.am
index dcb163310..2eb67c711 100644
--- a/unit_tests/base/Makefile.am
+++ b/unit_tests/base/Makefile.am
@@ -1,4 +1,5 @@
 AM_CPPFLAGS = -I../.. $(CPPUNIT_CFLAGS)
+AM_CXXFLAGS += -Wno-unused-command-line-argument
 LDADD = ../../tsk/libtsk.la $(CPPUNIT_LIBS)
 LDFLAGS = -static 
 
-- 
GitLab