aboutsummaryrefslogtreecommitdiff
path: root/src/coverity-model.c
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2022-05-20 14:22:15 -0400
committerGitHub <noreply@github.com>2022-05-20 14:22:15 -0400
commitb3453ea4a6b6518cccd6922fbcaa64a0aa47c743 (patch)
treef7b0c7d483e6792cbddcf8a7fc0d8dd8a3a49ecd /src/coverity-model.c
parentc847a0eeb7123122069cbf2903e95571e86f66c6 (diff)
parent3e627f9e553d0e63597a3df870cb273b64b7e51f (diff)
downloadrneovim-b3453ea4a6b6518cccd6922fbcaa64a0aa47c743.tar.gz
rneovim-b3453ea4a6b6518cccd6922fbcaa64a0aa47c743.tar.bz2
rneovim-b3453ea4a6b6518cccd6922fbcaa64a0aa47c743.zip
Merge pull request #18648 from jamessan/coverity-fixes
Diffstat (limited to 'src/coverity-model.c')
-rw-r--r--src/coverity-model.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/coverity-model.c b/src/coverity-model.c
index 2fd55c332c..4338b75ea2 100644
--- a/src/coverity-model.c
+++ b/src/coverity-model.c
@@ -42,3 +42,72 @@ int tv_dict_add(dict_T *const d, dictitem_T *const item)
{
__coverity_escape__(item);
}
+
+void *malloc(size_t size)
+{
+ int has_mem;
+ if (has_mem)
+ return __coverity_alloc__(size);
+ else
+ return 0;
+}
+
+void *try_malloc(size_t size)
+{
+ size_t allocated_size = size ? size : 1;
+ return malloc(allocated_size);
+}
+
+void *xmalloc(size_t size)
+{
+ void *p = malloc(size);
+ if (!p)
+ __coverity_panic__();
+ return p;
+}
+
+void xfree(void * ptr)
+{
+ __coverity_free__(ptr);
+}
+
+void *xcalloc(size_t count, size_t size)
+{
+ size_t allocated_count = count && size ? count : 1;
+ size_t allocated_size = count && size ? size : 1;
+ void *p = try_malloc(allocated_count * allocated_size);
+ if (!p)
+ __coverity_panic__();
+ __coverity_writeall0__(p);
+ return p;
+}
+
+void *xrealloc(void *ptr, size_t size)
+{
+ __coverity_escape__(ptr);
+ void * p = xmalloc(size);
+ __coverity_writeall__(p);
+ return p;
+}
+
+void *xmallocz(size_t size)
+{
+ void * p = malloc(size + 1);
+ ((char*)p)[size] = 0;
+ return p;
+}
+
+void * xmemdupz(const void * data, size_t len)
+{
+ void * p = xmallocz(len);
+ __coverity_writeall__(p);
+ ((char*)p)[len] = 0;
+ return p;
+}
+
+void * xmemdup(const void *data, size_t len)
+{
+ void * p = xmalloc(len);
+ __coverity_writeall__(p);
+ return p;
+}