From 35a2f67be9a81a24a0ebe5ace383c53ab106d854 Mon Sep 17 00:00:00 2001 From: Christian Krause Date: Wed, 19 Aug 2015 03:48:59 +0200 Subject: [PATCH] implements cppcheck test - fixes #8 --- .travis.yml | 2 +- configure.ac | 2 +- src/common.c | 11 ++++++++++- test/Makefile.am | 1 + test/cppcheck-src.sh | 8 ++++++++ 5 files changed, 21 insertions(+), 3 deletions(-) create mode 100755 test/cppcheck-src.sh diff --git a/.travis.yml b/.travis.yml index 952c526..d0f00c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ compiler: before_install: - sudo apt-get update -qq - - sudo apt-get install -qq asciidoc libarchive-dev liblzma-dev xz-utils + - sudo apt-get install -qq asciidoc cppcheck libarchive-dev liblzma-dev xz-utils script: - autoconf --version diff --git a/configure.ac b/configure.ac index 0b9111d..78175c7 100644 --- a/configure.ac +++ b/configure.ac @@ -43,7 +43,7 @@ AC_SYS_LARGEFILE AC_FUNC_MALLOC AC_FUNC_REALLOC AC_FUNC_STRTOD -AC_CHECK_FUNCS([memchr memmove memset strtol]) +AC_CHECK_FUNCS([memchr memmove memset strerror strtol]) AC_CONFIG_FILES([Makefile src/Makefile diff --git a/src/common.c b/src/common.c index 99e018f..ac24621 100644 --- a/src/common.c +++ b/src/common.c @@ -1,5 +1,6 @@ #include "pixz.h" +#include #include #include @@ -213,7 +214,15 @@ static void read_file_index_make_space(void) { if (expand || gMoved >= gFIBSize) { // malloc more space gStream.avail_out += gFIBSize; gFIBSize *= 2; - gFileIndexBuf = realloc(gFileIndexBuf, gFIBSize); + + uint8_t *new_gFileIndexBuf = realloc(gFileIndexBuf, gFIBSize); + + if (new_gFileIndexBuf == NULL) { + // TODO is recovery possible? does it even make sense? + die("memory re-allocation failure: %s", strerror(errno)); + } else { + gFileIndexBuf = new_gFileIndexBuf; + } } } diff --git a/test/Makefile.am b/test/Makefile.am index a0f8b1d..75b6bc9 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,4 +1,5 @@ TESTS = \ + cppcheck-src.sh \ single-file-round-trip.sh \ xz-compatibility-c-option.sh diff --git a/test/cppcheck-src.sh b/test/cppcheck-src.sh new file mode 100755 index 0000000..5c77b15 --- /dev/null +++ b/test/cppcheck-src.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +if which cppcheck &> /dev/null ; then + cppcheck --error-exitcode=1 $srcdir/../src +else + echo "no cppcheck, skipping test" + exit 77 +fi