summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjorton <jorton@13f79535-47bb-0310-9956-ffa450edef68>2017-09-11 15:29:46 +0000
committerjorton <jorton@13f79535-47bb-0310-9956-ffa450edef68>2017-09-11 15:29:46 +0000
commitf3702f701c28a950af0e2b62a5b56dbdd0c2d165 (patch)
treef971723ccc530193664d753623e754232eadc9a9
parent21d9f3cc23972d04bbe0d485f138f4b214cbdc43 (diff)
downloadlibapr-f3702f701c28a950af0e2b62a5b56dbdd0c2d165.tar.gz
Merge 1683521 from trunk:
* network_io/unix/sockaddr.c (apr_parse_addr_port): Simplify to use apr_pstrmemdup, no functional change. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/1.6.x@1808043 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--network_io/unix/sockaddr.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/network_io/unix/sockaddr.c b/network_io/unix/sockaddr.c
index a51e61874..8cfc0d7a4 100644
--- a/network_io/unix/sockaddr.c
+++ b/network_io/unix/sockaddr.c
@@ -277,19 +277,13 @@ APR_DECLARE(apr_status_t) apr_parse_addr_port(char **addr,
return APR_EINVAL;
}
addrlen = scope_delim - str - 1;
- *scope_id = apr_palloc(p, end_bracket - scope_delim);
- memcpy(*scope_id, scope_delim + 1, end_bracket - scope_delim - 1);
- (*scope_id)[end_bracket - scope_delim - 1] = '\0';
+ *scope_id = apr_pstrmemdup(p, scope_delim, end_bracket - scope_delim - 1);
}
else {
addrlen = addrlen - 2; /* minus 2 for '[' and ']' */
}
- *addr = apr_palloc(p, addrlen + 1);
- memcpy(*addr,
- str + 1,
- addrlen);
- (*addr)[addrlen] = '\0';
+ *addr = apr_pstrmemdup(p, str + 1, addrlen);
if (apr_inet_pton(AF_INET6, *addr, &ipaddr) != 1) {
*addr = NULL;
*scope_id = NULL;
@@ -303,9 +297,7 @@ APR_DECLARE(apr_status_t) apr_parse_addr_port(char **addr,
/* XXX If '%' is not a valid char in a DNS name, we *could* check
* for bogus scope ids first.
*/
- *addr = apr_palloc(p, addrlen + 1);
- memcpy(*addr, str, addrlen);
- (*addr)[addrlen] = '\0';
+ *addr = apr_pstrmemdup(p, str, addrlen);
}
return APR_SUCCESS;
}