From 97bd98cbfcb3ac06e5ac84b42894301f92ea50ef Mon Sep 17 00:00:00 2001
From: Dominik Loidolt <dominik.loidolt@univie.ac.at>
Date: Wed, 4 Oct 2023 16:52:08 +0200
Subject: [PATCH] rework malloc mock function

---
 .../test_cmp_max_used_bits_list.c               | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/test/cmp_max_used_bits/test_cmp_max_used_bits_list.c b/test/cmp_max_used_bits/test_cmp_max_used_bits_list.c
index 6ce2e52..98d0607 100644
--- a/test/cmp_max_used_bits/test_cmp_max_used_bits_list.c
+++ b/test/cmp_max_used_bits/test_cmp_max_used_bits_list.c
@@ -35,16 +35,19 @@ static int malloc_fail;
 
 void* malloc(size_t size)
 {
-    static void* (*real_malloc)(size_t) = NULL;
+	static void* (*real_malloc)(size_t size) = NULL;
 
-    if(malloc_fail)
-	    return NULL;
+	if(malloc_fail)
+		return NULL;
 
-    if (!real_malloc)
-        real_malloc = (void *(*)(size_t))dlsym(RTLD_NEXT, "malloc");
+	if (!real_malloc) {
+		*(void **)(&real_malloc) = dlsym(RTLD_NEXT, "malloc");
+		/* The cast removes a gcc warning https://stackoverflow.com/a/31528674 */
+		TEST_ASSERT_NOT_NULL(real_malloc);
+	}
 
-    fprintf(stderr, "malloc(%zu)\n", size);
-    return real_malloc(size);
+	fprintf(stderr, "malloc(%zu)\n", size);
+	return real_malloc(size);
 }
 
 
-- 
GitLab