summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2010-11-04 20:31:01 +0000
committerArthur de Jong <arthur@arthurdejong.org>2010-11-04 20:31:01 +0000
commit98a146cb2e92ee0a46ba56037303481e10182d6e (patch)
treeaf39440e1cdc29b38714a75679398ff3a1e65b58
parent9c8e6f04254bb4e2357ddd6b815dbb663be795a0 (diff)
pass the actual size of the address family and the path length to bind() and connect() for named sockets
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1295 ef36b2f9-881f-0410-afb5-c4e39611909c
-rw-r--r--common/nslcd-prot.c2
-rw-r--r--nslcd/nslcd.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/common/nslcd-prot.c b/common/nslcd-prot.c
index 102a6df..f2d6adf 100644
--- a/common/nslcd-prot.c
+++ b/common/nslcd-prot.c
@@ -66,7 +66,7 @@ TFILE *nslcd_client_open()
strncpy(addr.sun_path,NSLCD_SOCKET,sizeof(addr.sun_path));
addr.sun_path[sizeof(addr.sun_path)-1]='\0';
/* connect to the socket */
- if (connect(sock,(struct sockaddr *)&addr,(socklen_t)sizeof(struct sockaddr_un))<0)
+ if (connect(sock,(struct sockaddr *)&addr,(socklen_t)(sizeof(addr.sun_family)+strlen(addr.sun_path)))<0)
{
(void)close(sock);
return NULL;
diff --git a/nslcd/nslcd.c b/nslcd/nslcd.c
index 4b0ecb7..df496a4 100644
--- a/nslcd/nslcd.c
+++ b/nslcd/nslcd.c
@@ -293,7 +293,7 @@ static int create_socket(void)
strncpy(addr.sun_path,NSLCD_SOCKET,sizeof(addr.sun_path));
addr.sun_path[sizeof(addr.sun_path)-1]='\0';
/* bind to the named socket */
- if (bind(sock,(struct sockaddr *)&addr,sizeof(struct sockaddr_un)))
+ if (bind(sock,(struct sockaddr *)&addr,(sizeof(addr.sun_family)+strlen(addr.sun_path))))
{
log_log(LOG_ERR,"bind() to "NSLCD_SOCKET" failed: %s",
strerror(errno));