The following comment also applies to the backports to 1.7.x (1808043)
and 1.6.x (1808043):
Am 04.06.2015 um 13:24 schrieb jor...@apache.org:
Author: jorton
Date: Thu Jun 4 11:24:20 2015
New Revision: 1683521
URL: http://svn.apache.org/r1683521
Log:
* network_io/unix/sockaddr.c (apr_parse_addr_port): Simplify to use
apr_pstrmemdup, no functional change.
Modified:
apr/apr/trunk/network_io/unix/sockaddr.c
Modified: apr/apr/trunk/network_io/unix/sockaddr.c
URL:
http://svn.apache.org/viewvc/apr/apr/trunk/network_io/unix/sockaddr.c?rev=1683521&r1=1683520&r2=1683521&view=diff
==============================================================================
--- apr/apr/trunk/network_io/unix/sockaddr.c (original)
+++ apr/apr/trunk/network_io/unix/sockaddr.c Thu Jun 4 11:24:20 2015
@@ -277,19 +277,13 @@ APR_DECLARE(apr_status_t) apr_parse_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);
Before the change, copying starts at "scope_delim + 1", after the change
at "scope_delim". The log says "Simplify to use apr_pstrmemdup, no
functional change.", so it seems that was not an intentional change.
Shouldn't we correct it with the following change:
Index: network_io/unix/sockaddr.c
===================================================================
--- network_io/unix/sockaddr.c (revision 1809650)
+++ network_io/unix/sockaddr.c (working copy)
@@ -277,7 +277,7 @@
return APR_EINVAL;
}
addrlen = scope_delim - str - 1;
- *scope_id = apr_pstrmemdup(p, scope_delim, end_bracket -
scope_delim - 1);
+ *scope_id = apr_pstrmemdup(p, scope_delim + 1, end_bracket
- scope_delim - 1);
}
else {
addrlen = addrlen - 2; /* minus 2 for '[' and ']' */
Regards,
Rainer