aboutsummaryrefslogtreecommitdiffstats
path: root/src/assuan-socket-connect.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/assuan-socket-connect.c')
-rw-r--r--src/assuan-socket-connect.c6
1 files changed, 3 insertions, 3 deletions
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)
{