diff options
| author | James McCoy <jamessan@jamessan.com> | 2022-05-20 14:22:15 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-20 14:22:15 -0400 |
| commit | b3453ea4a6b6518cccd6922fbcaa64a0aa47c743 (patch) | |
| tree | f7b0c7d483e6792cbddcf8a7fc0d8dd8a3a49ecd /src/coverity-model.c | |
| parent | c847a0eeb7123122069cbf2903e95571e86f66c6 (diff) | |
| parent | 3e627f9e553d0e63597a3df870cb273b64b7e51f (diff) | |
| download | rneovim-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.c | 69 |
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; +} |