summaryrefslogtreecommitdiffstats
path: root/otherlibs/unix
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>1996-01-11 14:16:18 +0000
committerXavier Leroy <xavier.leroy@inria.fr>1996-01-11 14:16:18 +0000
commit2d1cd374d76eccdbcf59951e245df521bfc91a10 (patch)
treee581b3c15ae1c8ed8021eae817028df3cf558d0b /otherlibs/unix
parent76ca01eacef1a991928ec2b511f59b87e19f23fa (diff)
Calcul de sockaddr_len incorrect dans le cas AF_UNIX (signale par F. Dupont)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@612 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'otherlibs/unix')
-rw-r--r--otherlibs/unix/socketaddr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/otherlibs/unix/socketaddr.c b/otherlibs/unix/socketaddr.c
index 13b772ffa..bc179f13d 100644
--- a/otherlibs/unix/socketaddr.c
+++ b/otherlibs/unix/socketaddr.c
@@ -45,7 +45,9 @@ void get_sockaddr(a)
unix_error(ENAMETOOLONG, "", path);
}
bcopy(String_val(path), sock_addr.s_unix.sun_path, (int) len + 1);
- sock_addr_len = sizeof(sock_addr.s_unix.sun_family) + len;
+ sock_addr_len =
+ ((char *)&(sock_addr.s_unix.sun_path) - (char *)&(sock_addr.s_unix))
+ + len;
break;
}
case 1: /* ADDR_INET */