From 24a7e51745615a49dff766fce894c23a742df6a0 Mon Sep 17 00:00:00 2001 From: "Peter W. Draper" <p.w.draper@durham.ac.uk> Date: Mon, 3 Jun 2019 15:08:55 +0100 Subject: [PATCH] Only copy the buffer size, memuse_log_count can exceed this, also make the log pointer volatile to stop potential reordering --- src/memuse.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/memuse.c b/src/memuse.c index 10fd349c0c..9b29b37755 100644 --- a/src/memuse.c +++ b/src/memuse.c @@ -73,7 +73,7 @@ struct memuse_log_entry { }; /* The log of allocations and frees. */ -static struct memuse_log_entry *memuse_log = NULL; +static struct memuse_log_entry *volatile memuse_log = NULL; static volatile size_t memuse_log_size = 0; static volatile size_t memuse_log_count = 0; static volatile size_t memuse_log_done = 0; @@ -103,7 +103,7 @@ static void memuse_log_reallocate(size_t ind) { /* Copy to new buffer. */ memcpy(new_log, memuse_log, - sizeof(struct memuse_log_entry) * memuse_log_count); + sizeof(struct memuse_log_entry) * memuse_log_size); free(memuse_log); memuse_log = new_log; -- GitLab