You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by yl...@apache.org on 2022/01/12 12:48:03 UTC

svn commit: r1896958 - in /apr/apr/branches/1.7.x: ./ network_io/unix/sockaddr.c

Author: ylavic
Date: Wed Jan 12 12:48:03 2022
New Revision: 1896958

URL: http://svn.apache.org/viewvc?rev=1896958&view=rev
Log:
Merge r1896956 from trunk:

apr_sockaddr_ip_getbuf: Follow up to r1883728.

Return APR_ENOSPC if returned buf is truncated for an AF_UNIX.

Submitted by: ylavic

Modified:
    apr/apr/branches/1.7.x/   (props changed)
    apr/apr/branches/1.7.x/network_io/unix/sockaddr.c

Propchange: apr/apr/branches/1.7.x/
------------------------------------------------------------------------------
  Merged /apr/apr/trunk:r1896956

Modified: apr/apr/branches/1.7.x/network_io/unix/sockaddr.c
URL: http://svn.apache.org/viewvc/apr/apr/branches/1.7.x/network_io/unix/sockaddr.c?rev=1896958&r1=1896957&r2=1896958&view=diff
==============================================================================
--- apr/apr/branches/1.7.x/network_io/unix/sockaddr.c (original)
+++ apr/apr/branches/1.7.x/network_io/unix/sockaddr.c Wed Jan 12 12:48:03 2022
@@ -120,9 +120,10 @@ APR_DECLARE(apr_status_t) apr_sockaddr_i
 {
 #if APR_HAVE_SOCKADDR_UN
     if (sockaddr->family == APR_UNIX) {
-        apr_size_t len = (apr_size_t)sockaddr->ipaddr_len;
-        apr_cpystrn(buf, sockaddr->ipaddr_ptr, buflen < len ? buflen : len);
-        return APR_SUCCESS;
+        const char *ptr = sockaddr->ipaddr_ptr;
+        apr_size_t len = apr_cpystrn(buf, ptr, buflen) - buf;
+        /* assumes that sockaddr->ipaddr_ptr is nul terminated */
+        return ptr[len] ? APR_ENOSPC : APR_SUCCESS;
     }
 #endif