From 77d074c33556e53f4c4b1e9d4f3edbb19a02dd4c Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Mon, 8 Feb 2016 15:07:24 -0500 Subject: [PATCH] fix length of software STUN attribute Change-Id: I5adf2d8f28eb9beb61a33258a44ed40c2b1604a5 --- daemon/stun.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/daemon/stun.c b/daemon/stun.c index a303312e5..dd020ce14 100644 --- a/daemon/stun.c +++ b/daemon/stun.c @@ -288,6 +288,8 @@ INLINE void __output_add(struct msghdr *mh, struct tlv *tlv, unsigned int len, u __output_add(mh, &(attr)->tlv, len + sizeof(struct tlv), code, NULL, 0) #define output_add_data(mh, attr, code, data, len) \ __output_add(mh, &(attr)->tlv, sizeof(*(attr)), code, data, len) +#define output_add_data_len_pad(mh, attr, code, data, len) \ + __output_add(mh, &(attr)->tlv, sizeof((attr)->tlv), code, data, len) static void __output_finish(struct msghdr *mh) { @@ -303,7 +305,7 @@ static void output_finish_src(struct msghdr *mh) { static void software(struct msghdr *mh, struct software *sw) { int i; i = snprintf(sw->str, sizeof(sw->str) - 1, "rtpengine-%s", RTPENGINE_VERSION); - output_add_data(mh, sw, STUN_SOFTWARE, sw->str, i); + output_add_data_len_pad(mh, sw, STUN_SOFTWARE, sw->str, i); } static void fingerprint(struct msghdr *mh, struct fingerprint *fp) {