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.