summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2023-02-03 11:43:04 +0100
committerAndreas Schneider <asn@cryptomilk.org>2023-02-03 11:43:04 +0100
commit776cc1f5eb874ab0aec04b6103cc1aa9246851d7 (patch)
tree7a008e4b6c70b676ac4dc56b4912f836cbffaad0
parentfcb8a031b1d5dc5f5adf7d41e845b0b53768d2b4 (diff)
downloadcmocka-776cc1f5eb874ab0aec04b6103cc1aa9246851d7.zip
cmocka-776cc1f5eb874ab0aec04b6103cc1aa9246851d7.tar.gz
cmocka-776cc1f5eb874ab0aec04b6103cc1aa9246851d7.tar.bz2
coverity: Add makefile to build/test the model files
-rw-r--r--coverity/Makefile9
-rw-r--r--coverity/coverity-builtins.h50
-rw-r--r--coverity/coverity_assert_model.c2
3 files changed, 60 insertions, 1 deletions
diff --git a/coverity/Makefile b/coverity/Makefile
new file mode 100644
index 0000000..e1cd8a3
--- /dev/null
+++ b/coverity/Makefile
@@ -0,0 +1,9 @@
+.PHONY: check-gcc
+
+# Part of csdiff package on Fedora
+CSGREP ?= csgrep
+
+CFLAGS ?= -Wall -Wno-uninitialized -Wno-unused-variable -Wno-unused-but-set-variable -Werror
+
+check-gcc:
+ gcc -o /dev/null -fPIC -shared -include ./coverity-builtins.h $(CFLAGS) *.c 2> >($(CSGREP))
diff --git a/coverity/coverity-builtins.h b/coverity/coverity-builtins.h
new file mode 100644
index 0000000..8dbf47f
--- /dev/null
+++ b/coverity/coverity-builtins.h
@@ -0,0 +1,50 @@
+#define ALLOCATION 1
+#define ENVIRONMENT 1
+#define FILESYSTEM 1
+#define FORMAT_STRING 1
+#define GENERIC 1
+#define OS_CMD_ARGUMENTS 1
+#define OS_CMD_FILENAME 1
+#define OS_CMD_ONE_STRING 1
+#define OVERRUN 1
+#define PATH 1
+#define TAINT_TYPE_CONSOLE 1
+#define TAINT_TYPE_ENVIRONMENT 1
+#define TAINT_TYPE_FILESYSTEM 1
+#define TAINT_TYPE_NETWORK 1
+
+struct va_list_str;
+
+typedef unsigned long size_t;
+
+void*__coverity_alloc__(size_t);
+void*__coverity_alloc_nosize__();
+void __coverity_close__(int);
+void __coverity_escape__();
+void __coverity_free__(void *);
+void __coverity_mark_as_uninitialized_buffer__(void *);
+void __coverity_mark_as_afm_allocated__(const void *, const char *);
+void __coverity_mark_as_afm_freed__(const void *, const char *);
+void __coverity_mark_pointee_as_sanitized__(const void *, int);
+void __coverity_mark_pointee_as_tainted__(const void *, int);
+void __coverity_negative_sink__(long);
+int __coverity_open__(void);
+void __coverity_panic__() __attribute__((__noreturn__));
+void __coverity_printf_function_varargs__(int, const char *);
+void __coverity_printf_function_valist__(int, const char *, struct va_list_str *);
+void __coverity_read_buffer_bytes__(const void *, size_t);
+void __coverity_string_size_sink__(const void *);
+void __coverity_string_size_sink_vararg__(int);
+void __coverity_string_null_argument__(void *, size_t);
+void __coverity_string_null_sink__(const void *);
+void __coverity_string_null_sink_vararg__(int);
+void __coverity_taint_sink__(const void *, int);
+void __coverity_tainted_data_sanitize__(const void *);
+void __coverity_tainted_data_sink__(const void *);
+void __coverity_tainted_data_transitive__(void *, const void *);
+void __coverity_tainted_string_sanitize_content__(const char *);
+void __coverity_use_handle__(int);
+void __coverity_weak_guard_sink__(const void *a, const void *b);
+void __coverity_write_buffer_bytes__(char *, size_t);
+void __coverity_writeall__(void *);
+void __coverity_writeall0__(void *);
diff --git a/coverity/coverity_assert_model.c b/coverity/coverity_assert_model.c
index 1a50917..4b3f030 100644
--- a/coverity/coverity_assert_model.c
+++ b/coverity/coverity_assert_model.c
@@ -20,7 +20,7 @@
typedef long long intmax_t;
typedef unsigned long long uintmax_t;
-typedef unsigned long long size_t;
+/* size_t is already defined by Coverity */
void _assert_true(const uintmax_t result,
const char* const expression,