This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Cygwin: AF_UNIX: fix SEGV when sending an empty socket name from connect


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=4de52a0fe1009d2a5318a731400dbf4280b184cc

commit 4de52a0fe1009d2a5318a731400dbf4280b184cc
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Wed Mar 7 16:08:15 2018 +0100

    Cygwin: AF_UNIX: fix SEGV when sending an empty socket name from connect
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 winsup/cygwin/fhandler_socket_unix.cc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/winsup/cygwin/fhandler_socket_unix.cc b/winsup/cygwin/fhandler_socket_unix.cc
index f320453..27ac958 100644
--- a/winsup/cygwin/fhandler_socket_unix.cc
+++ b/winsup/cygwin/fhandler_socket_unix.cc
@@ -540,15 +540,18 @@ fhandler_socket_unix::set_pipe_non_blocking (bool nonblocking)
 int
 fhandler_socket_unix::send_my_name ()
 {
+  sun_name_t *sun;
   size_t name_len = 0;
   af_unix_pkt_hdr_t *packet;
   NTSTATUS status;
   IO_STATUS_BLOCK io;
 
   AcquireSRWLockShared (&bind_lock);
-  name_len = get_sun_path ()->un_len;
+  sun = get_sun_path ();
+  name_len = sun ? sun->un_len : 0;
   packet = (af_unix_pkt_hdr_t *) alloca (sizeof *packet + name_len);
-  memcpy (AF_UNIX_PKT_NAME (packet), &get_sun_path ()->un, name_len);
+  if (sun)
+    memcpy (AF_UNIX_PKT_NAME (packet), &sun->un, name_len);
   ReleaseSRWLockShared (&bind_lock);
 
   packet->init (0, name_len, 0, 0);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]