Author: rhuijben Date: Sat Oct 24 20:45:35 2015 New Revision: 1710385 URL: http://svn.apache.org/viewvc?rev=1710385&view=rev Log: * outgoing.c (store_ipaddresses_in_config): Increase buffer space to allow formatting ipv6 addresses and check the result to avoid missing APR_ENOSPC and thereby setting a string containing something undefined.
Modified: serf/trunk/outgoing.c Modified: serf/trunk/outgoing.c URL: http://svn.apache.org/viewvc/serf/trunk/outgoing.c?rev=1710385&r1=1710384&r2=1710385&view=diff ============================================================================== --- serf/trunk/outgoing.c (original) +++ serf/trunk/outgoing.c Sat Oct 24 20:45:35 2015 @@ -357,16 +357,16 @@ static void store_ipaddresses_in_config( apr_sockaddr_t *sa; if (apr_socket_addr_get(&sa, APR_LOCAL, skt) == APR_SUCCESS) { - char buf[32]; - apr_sockaddr_ip_getbuf(buf, 32, sa); - serf_config_set_stringf(config, SERF_CONFIG_CONN_LOCALIP, - "%s:%d", buf, sa->port); + char buf[48]; + if (!apr_sockaddr_ip_getbuf(buf, sizeof(buf), sa)) + serf_config_set_stringf(config, SERF_CONFIG_CONN_LOCALIP, + "%s:%d", buf, sa->port); } if (apr_socket_addr_get(&sa, APR_REMOTE, skt) == APR_SUCCESS) { - char buf[32]; - apr_sockaddr_ip_getbuf(buf, 32, sa); - serf_config_set_stringf(config, SERF_CONFIG_CONN_REMOTEIP, - "%s:%d", buf, sa->port); + char buf[48]; + if (!apr_sockaddr_ip_getbuf(buf, sizeof(buf), sa)) + serf_config_set_stringf(config, SERF_CONFIG_CONN_REMOTEIP, + "%s:%d", buf, sa->port); } }