From 678f6063b53e4a2cc919f5a8b9d8bde743839c54 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 13 Jul 2016 16:11:45 +0200 Subject: Allow socket redirection with assuan_socket_connect. * src/assuan-socket-connect.c (assuan_socket_connect): Use set_socketaddr function. -- GnuPG-bug-id: 2253 Signed-off-by: Werner Koch --- src/assuan-socket-connect.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/assuan-socket-connect.c b/src/assuan-socket-connect.c index 73fbbc3..3d3176e 100644 --- a/src/assuan-socket-connect.c +++ b/src/assuan-socket-connect.c @@ -233,15 +233,13 @@ assuan_socket_connect (assuan_context_t ctx, const char *name, if (af == AF_LOCAL) { - if (strlen (name)+1 >= sizeof srvr_addr_un.sun_path) - return _assuan_error (ctx, GPG_ERR_ASS_INV_VALUE); + int redirected; - memset (&srvr_addr_un, 0, sizeof srvr_addr_un); - srvr_addr_un.sun_family = AF_LOCAL; - strncpy (srvr_addr_un.sun_path, name, sizeof (srvr_addr_un.sun_path) - 1); - srvr_addr_un.sun_path[sizeof (srvr_addr_un.sun_path) - 1] = 0; - len = SUN_LEN (&srvr_addr_un); + if (_assuan_sock_set_sockaddr_un (name, (struct sockaddr *)&srvr_addr_un, + &redirected)) + return _assuan_error (ctx, gpg_err_code_from_syserror ()); + len = SUN_LEN (&srvr_addr_un); srvr_addr = (struct sockaddr *)&srvr_addr_un; } else -- cgit v1.2.3