From a33fd59dc664b9f93f16abea34e5769cc8dcb41a Mon Sep 17 00:00:00 2001 From: Matthew Fredrickson Date: Fri, 2 Jun 2006 14:34:20 +0000 Subject: [PATCH] Fix for 7115. Don't call pri_message multiple times git-svn-id: https://origsvn.digium.com/svn/libpri/trunk@346 2fbb986a-6c06-0410-b554-c9c1f0a7f128 --- q931.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/q931.c b/q931.c index 83f5b3b..bfb5809 100644 --- a/q931.c +++ b/q931.c @@ -2119,15 +2119,17 @@ static inline void q931_dumpie(struct pri *pri, int codeset, q931_ie *ie, char p unsigned int x; int full_ie = Q931_FULL_IE(codeset, ie->ie); int base_ie; + char *buf = malloc(ielen(ie) * 3 + 1); + int buflen = 0; - pri_message(pri, "%c [", prefix); - pri_message(pri, "%02x", ie->ie); + buf[0] = '\0'; if (!(ie->ie & 0x80)) { - pri_message(pri, " %02x", ielen(ie)-2); + buflen += sprintf(buf, " %02x", ielen(ie)-2); for (x = 0; x + 2 < ielen(ie); ++x) - pri_message(pri, " %02x", ie->data[x]); + buflen += sprintf(buf + buflen, " %02x", ie->data[x]); } - pri_message(pri, "]\n"); + pri_message(pri, "%c [%02x%s]\n", prefix, ie->ie, buf); + free(buf); /* Special treatment for shifts */ if((full_ie & 0xf0) == Q931_LOCKING_SHIFT)