]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
uri.c: Simplify ast_uri_make_host_with_port()
authorSean Bright <sean@seanbright.com>
Thu, 9 Nov 2023 23:06:22 +0000 (18:06 -0500)
committerAsterisk Development Team <asteriskteam@digium.com>
Fri, 12 Jan 2024 18:32:13 +0000 (18:32 +0000)
(cherry picked from commit e2e18b366c06f3cdfccf6fcfe03027676f316290)

main/uri.c

index 07493699bbfe8a4ae0b8948a408d7a90bf195d88..312ab45be25d9bd8a10bce1ad0699bc46fde0c3b 100644 (file)
@@ -299,25 +299,14 @@ struct ast_uri *ast_uri_parse_websocket(const char *uri)
 
 char *ast_uri_make_host_with_port(const struct ast_uri *uri)
 {
-       int host_size = ast_uri_host(uri) ?
-               strlen(ast_uri_host(uri)) : 0;
-       /* if there is a port +1 for the colon */
-       int port_size = ast_uri_port(uri) ?
-               strlen(ast_uri_port(uri)) + 1 : 0;
-       char *res = ast_malloc(host_size + port_size + 1);
+       char *res;
 
-       if (!res) {
+       if (ast_asprintf(&res, "%s%s%s",
+                       ast_uri_host(uri) ?: "",
+                       ast_uri_port(uri) ? ":" : "",
+                       ast_uri_port(uri) ?: "") == -1) {
                return NULL;
        }
 
-       memcpy(res, ast_uri_host(uri), host_size);
-
-       if (ast_uri_port(uri)) {
-               res[host_size] = ':';
-               memcpy(res + host_size + 1,
-                      ast_uri_port(uri), port_size - 1);
-       }
-
-       res[host_size + port_size] = '\0';
        return res;
 }