From 63cb949ebc76a4688c0168ef95bc8f4a8eb24d45 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 11 Nov 2019 05:51:43 +0100 Subject: msgb_put: more elaborate logging of head/tailroom failure Change-Id: I55b68098e1037c74ebe5faa86e34bd4494f5b726 --- include/osmocom/core/msgb.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/include/osmocom/core/msgb.h b/include/osmocom/core/msgb.h index 1833a6c1..cc76e3ad 100644 --- a/include/osmocom/core/msgb.h +++ b/include/osmocom/core/msgb.h @@ -239,7 +239,11 @@ static inline unsigned char *msgb_put(struct msgb *msgb, unsigned int len) { unsigned char *tmp = msgb->tail; if (msgb_tailroom(msgb) < (int) len) - MSGB_ABORT(msgb, "Not enough tailroom msgb_put (%u < %u)\n", + MSGB_ABORT(msgb, "Not enough tailroom msgb_put" + " (allocated %u, head at %u, len %u, tailroom %u < want tailroom %u)\n", + msgb->data_len - sizeof(struct msgb), + msgb->head - msgb->_data, + msgb->len, msgb_tailroom(msgb), len); msgb->tail += len; msgb->len += len; @@ -335,8 +339,13 @@ static inline uint32_t msgb_get_u32(struct msgb *msgb) static inline unsigned char *msgb_push(struct msgb *msgb, unsigned int len) { if (msgb_headroom(msgb) < (int) len) - MSGB_ABORT(msgb, "Not enough headroom msgb_push (%u < %u)\n", - msgb_headroom(msgb), len); + MSGB_ABORT(msgb, "Not enough headroom msgb_push" + " (allocated %u, head at %u < want headroom %u, len %u, tailroom %u)\n", + msgb->data_len - sizeof(struct msgb), + msgb->head - msgb->_data, + len, + msgb->len, + msgb_tailroom(msgb)); msgb->data -= len; msgb->len += len; return msgb->data; -- cgit v1.2.3