jolly submitted this change.

View Change



1 is the latest approved patch-set.
No files were changed between the latest approved patch-set and the submitted one.

Approvals: Jenkins Builder: Verified laforge: Looks good to me, but someone else must approve dexter: Looks good to me, approved
Prevent compiler warning after calling realloc()

After calling realloc(), the old pointer may get freed, so it must not
be used afterwards. If memory leak debugging is enabled (see
-DMEM_EMIT_DEBUG=ON), the old pointer value is printed but there is no
access to any memory location.

Prevent the compiler warning by making a copy of the old pointer and
call realloc() with that copy. Print the value of the original pointer.

Related: SYS#8199
Change-Id: I97360285ec5077d668dd23a158475496c9c47890
---
M include/onomondo/ipa/mem.h
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/onomondo/ipa/mem.h b/include/onomondo/ipa/mem.h
index 88349b1..cc9d43e 100644
--- a/include/onomondo/ipa/mem.h
+++ b/include/onomondo/ipa/mem.h
@@ -47,8 +47,9 @@
#ifdef MEM_EMIT_DEBUG
#define IPA_REALLOC(obj, n) ({ \
void *___ptr; \
+ void *___old_ptr = (obj); \
___mem_counter -= malloc_usable_size(obj); \
- ___ptr = realloc(obj, n); \
+ ___ptr = realloc(___old_ptr, n); \
___mem_counter += malloc_usable_size(___ptr); \
if (___mem_counter > ___mem_peak) ___mem_peak = ___mem_counter; \
printf("====> %p=realloc(%p, %ld): %li bytes total, %li bytes peak\n", \

To view, visit change 43624. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: onomondo-ipa
Gerrit-Branch: master
Gerrit-Change-Id: I97360285ec5077d668dd23a158475496c9c47890
Gerrit-Change-Number: 43624
Gerrit-PatchSet: 3
Gerrit-Owner: jolly <andreas@eversberg.eu>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier@sysmocom.de>
Gerrit-Reviewer: jolly <andreas@eversberg.eu>
Gerrit-Reviewer: laforge <laforge@osmocom.org>