diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2010-11-04 20:31:01 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2010-11-04 20:31:01 +0000 |
commit | 98a146cb2e92ee0a46ba56037303481e10182d6e (patch) | |
tree | af39440e1cdc29b38714a75679398ff3a1e65b58 | |
parent | 9c8e6f04254bb4e2357ddd6b815dbb663be795a0 (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.c | 2 | ||||
-rw-r--r-- | nslcd/nslcd.c | 2 |
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)); |