diff options
Diffstat (limited to 'tests/clar/clar_libgit2_alloc.c')
-rw-r--r-- | tests/clar/clar_libgit2_alloc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/tests/clar/clar_libgit2_alloc.c b/tests/clar/clar_libgit2_alloc.c index 7abc998ce..e93037923 100644 --- a/tests/clar/clar_libgit2_alloc.c +++ b/tests/clar/clar_libgit2_alloc.c @@ -73,13 +73,17 @@ static void *cl__realloc(void *ptr, size_t size, const char *file, int line) if (p) memcpy(©bytes, p - sizeof(size_t), sizeof(size_t)); + if (copybytes > size) copybytes = size; if ((new = cl__malloc(size, file, line)) == NULL) goto out; - memcpy(new, p, copybytes); - cl__free(p); + + if (p) { + memcpy(new, p, copybytes); + cl__free(p); + } out: return new; |