summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2016-02-10 10:59:14 +0100
committerPatrick Steinhardt <ps@pks.im>2016-02-10 10:59:14 +0100
commit8dddea42aaf876663fc3cc1afa31f2165cb9f993 (patch)
tree44c264cd214458cf8af55feb004b0827c4d96e6e
parent488e2b85053a45dd2ce6a37b7d5cf70870be5ed8 (diff)
downloadlibgit2-8dddea42aaf876663fc3cc1afa31f2165cb9f993.tar.gz
coverity: provide nodef for GITERR_CHECK_ALLOC
Coverity currently lists a lot of errors with regard to GITERR_CHECK_ALLOC causing resource leaks. We know this macro is only invoked when we want to abort because we are out of memory. Coverity allows for overriding the default model where we know that certain functions guarantee a desired behavior. The user_nodefs.h is used to override the behavior of macros. Re-define GITERR_CHECK_ALLOC inside of it to specify its abort nature.
-rwxr-xr-xscript/coverity.sh2
-rw-r--r--script/user_nodefs.h8
2 files changed, 10 insertions, 0 deletions
diff --git a/script/coverity.sh b/script/coverity.sh
index dcfeffc1d..785044c8a 100755
--- a/script/coverity.sh
+++ b/script/coverity.sh
@@ -33,6 +33,8 @@ if [ ! -d "$TOOL_BASE" ]; then
ln -s "$TOOL_DIR" "$TOOL_BASE"/cov-analysis
fi
+cp script/user_nodefs.h "$TOOL_BASE"/cov-analysis/config/user_nodefs.h
+
COV_BUILD="$TOOL_BASE/cov-analysis/bin/cov-build"
# Configure and build
diff --git a/script/user_nodefs.h b/script/user_nodefs.h
new file mode 100644
index 000000000..110f76851
--- /dev/null
+++ b/script/user_nodefs.h
@@ -0,0 +1,8 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+
+#nodef GITERR_CHECK_ALLOC(ptr) if (ptr == NULL) { __coverity_panic__(); }