Module: kamailio
Branch: master
Commit: 1ded1730c7fe81596d874fdc314dab64a7dab25b
URL: 
https://github.com/kamailio/kamailio/commit/1ded1730c7fe81596d874fdc314dab64a7dab25b

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2023-11-21T12:04:01+01:00

mediaproxy: print to buffer with size limit

---

Modified: src/modules/mediaproxy/mediaproxy.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/1ded1730c7fe81596d874fdc314dab64a7dab25b.diff
Patch: 
https://github.com/kamailio/kamailio/commit/1ded1730c7fe81596d874fdc314dab64a7dab25b.patch

---

diff --git a/src/modules/mediaproxy/mediaproxy.c 
b/src/modules/mediaproxy/mediaproxy.c
index 8b8d87616ad..782bc202893 100644
--- a/src/modules/mediaproxy/mediaproxy.c
+++ b/src/modules/mediaproxy/mediaproxy.c
@@ -1614,7 +1614,7 @@ static int use_media_proxy(
                if(session.supported_count == 0)
                        return 1; // there are no supported media streams. we 
have nothing to do.
 
-               len = sprintf(media_str, "%s", "media: ");
+               len = snprintf(media_str, sizeof(media_str), "%s", "media: ");
                for(i = 0, str_buf.len = sizeof(media_str) - len - 2,
                str_buf.s = media_str + len;
                                i < session.stream_count; i++) {
@@ -1628,15 +1628,15 @@ static int use_media_proxy(
                                                (unsigned 
long)sizeof(media_str));
                                return -1;
                        }
-                       len = sprintf(str_buf.s, "%.*s:%.*s:%.*s:%.*s:%s,", 
stream.type.len,
-                                       stream.type.s, stream.ip.len, 
stream.ip.s, stream.port.len,
-                                       stream.port.s, stream.direction.len, 
stream.direction.s,
-                                       stream.has_ice ? "ice=yes" : "ice=no");
+                       len = snprintf(str_buf.s, str_buf.len, 
"%.*s:%.*s:%.*s:%.*s:%s,",
+                                       stream.type.len, stream.type.s, 
stream.ip.len, stream.ip.s,
+                                       stream.port.len, stream.port.s, 
stream.direction.len,
+                                       stream.direction.s, stream.has_ice ? 
"ice=yes" : "ice=no");
                        str_buf.s += len;
                        str_buf.len -= len;
                }
                *(str_buf.s - 1) = 0; // remove the last comma
-               sprintf(str_buf.s - 1, "%s", "\r\n");
+               snprintf(str_buf.s - 1, str_buf.len + 1, "%s", "\r\n");
        } else {
                media_str[0] = 0;
        }
@@ -1819,7 +1819,7 @@ static int use_media_proxy(
                                                           : ice_data->priority;
                        port = strtoint(&tokens[j]);
                        candidate.s = buf;
-                       candidate.len = sprintf(candidate.s,
+                       candidate.len = snprintf(candidate.s, sizeof(buf),
                                        "a=candidate:R%x 1 UDP %u %.*s %i typ 
relay%.*s",
                                        hexip.s_addr, priority, tokens[0].len, 
tokens[0].s, port,
                                        session.separator.len, 
session.separator.s);
@@ -1833,7 +1833,7 @@ static int use_media_proxy(
 
                        if(stream.has_rtcp_ice) {
                                candidate.s = buf;
-                               candidate.len = sprintf(candidate.s,
+                               candidate.len = snprintf(candidate.s, 
sizeof(buf),
                                                "a=candidate:R%x 2 UDP %u %.*s 
%i typ relay%.*s",
                                                hexip.s_addr, priority - 1, 
tokens[0].len, tokens[0].s,
                                                port + 1, 
session.separator.len, session.separator.s);
@@ -2199,4 +2199,4 @@ int mod_register(char *path, int *dlflags, void *p1, void 
*p2)
 {
        sr_kemi_modules_add(sr_kemi_mediaproxy_exports);
        return 0;
-}
\ No newline at end of file
+}

_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to [email protected]

Reply via email to