Fix incorrect buffer size calculation
Calling sizeof() on a pointer to dynamically allocated memory would
result in getting size of the pointer (usually 4 or 8 bytes) itself,
but not the size of allocated memory.
Change-Id: I8ffda4dea2b7f9b4b76dfeecad1fab6384c5a62c
Fixes: CID#197629, CID#197628, CID#197627
Fixes: CID#197626, CID#197625, CID#197624
diff --git a/src/msgb.c b/src/msgb.c
index 5a154e5..940135f 100644
--- a/src/msgb.c
+++ b/src/msgb.c
@@ -522,10 +522,11 @@
*/
char *msgb_hexdump_c(const void *ctx, const struct msgb *msg)
{
- char *buf = talloc_size(ctx, msgb_length(msg)*3 + 100);
+ size_t buf_len = msgb_length(msg) * 3 + 100;
+ char *buf = talloc_size(ctx, buf_len);
if (!buf)
return NULL;
- return msgb_hexdump_buf(buf, sizeof(buf), msg);
+ return msgb_hexdump_buf(buf, buf_len, msg);
}
/*! Print a string to the end of message buffer.