From fc2f92568d1b2634be395b3f11bd31da1f7fa81d Mon Sep 17 00:00:00 2001 From: Moritz Schulte Date: Tue, 11 Nov 2003 17:36:46 +0000 Subject: 2003-11-11 Moritz Schulte * assuan-socket-connect.c (assuan_socket_connect): Fix computation of socket address length. --- src/ChangeLog | 5 +++++ src/assuan-socket-connect.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index 3d2faf9..08bb2bd 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2003-11-11 Moritz Schulte + + * assuan-socket-connect.c (assuan_socket_connect): Fix computation + of socket address length. + 2003-08-13 Werner Koch * assuan-inquire.c (assuan_inquire): Increase length of cmdbuf to diff --git a/src/assuan-socket-connect.c b/src/assuan-socket-connect.c index a7246cc..020ca1c 100644 --- a/src/assuan-socket-connect.c +++ b/src/assuan-socket-connect.c @@ -95,9 +95,9 @@ assuan_socket_connect (ASSUAN_CONTEXT *r_ctx, memset (&srvr_addr, 0, sizeof srvr_addr); srvr_addr.sun_family = AF_LOCAL; - len = strlen (srvr_addr.sun_path) + 1; - memcpy (srvr_addr.sun_path, name, len); - len += (offsetof (struct sockaddr_un, sun_path)); + strncpy (srvr_addr.sun_path, name, sizeof (srvr_addr.sun_path) - 1); + srvr_addr.sun_path[sizeof (srvr_addr.sun_path) - 1] = 0; + len = SUN_LEN (&srvr_addr); if (connect (fd, (struct sockaddr *) &srvr_addr, len) == -1) { -- cgit v1.2.3