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);
     }
 }
 


Reply via email to