]> git.ipfire.org Git - thirdparty/asterisk.git/blob
76f02fccf3f3fac91ad7411833805d77956b8b48
[thirdparty/asterisk.git] /
1 From 450baca94f475345542c6953832650c390889202 Mon Sep 17 00:00:00 2001
2 From: sauwming <ming@teluu.com>
3 Date: Tue, 7 Jun 2022 12:00:13 +0800
4 Subject: [PATCH] Merge pull request from GHSA-26j7-ww69-c4qj
5
6 ---
7 pjlib-util/src/pjlib-util/stun_simple.c | 7 ++++++-
8 1 file changed, 6 insertions(+), 1 deletion(-)
9
10 diff --git a/pjlib-util/src/pjlib-util/stun_simple.c b/pjlib-util/src/pjlib-util/stun_simple.c
11 index 722519584..d0549176d 100644
12 --- a/pjlib-util/src/pjlib-util/stun_simple.c
13 +++ b/pjlib-util/src/pjlib-util/stun_simple.c
14 @@ -54,6 +54,7 @@ PJ_DEF(pj_status_t) pjstun_parse_msg( void *buf, pj_size_t buf_len,
15 {
16 pj_uint16_t msg_type, msg_len;
17 char *p_attr;
18 + int attr_max_cnt = PJ_ARRAY_SIZE(msg->attr);
19
20 PJ_CHECK_STACK();
21
22 @@ -83,7 +84,7 @@ PJ_DEF(pj_status_t) pjstun_parse_msg( void *buf, pj_size_t buf_len,
23 msg->attr_count = 0;
24 p_attr = (char*)buf + sizeof(pjstun_msg_hdr);
25
26 - while (msg_len > 0) {
27 + while (msg_len > 0 && msg->attr_count < attr_max_cnt) {
28 pjstun_attr_hdr **attr = &msg->attr[msg->attr_count];
29 pj_uint32_t len;
30 pj_uint16_t attr_type;
31 @@ -111,6 +112,10 @@ PJ_DEF(pj_status_t) pjstun_parse_msg( void *buf, pj_size_t buf_len,
32 p_attr += len;
33 ++msg->attr_count;
34 }
35 + if (msg->attr_count == attr_max_cnt) {
36 + PJ_LOG(4, (THIS_FILE, "Warning: max number attribute %d reached.",
37 + attr_max_cnt));
38 + }
39
40 return PJ_SUCCESS;
41 }
42 --
43 2.25.1
44