summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--THANKS1
-rw-r--r--libguile/ChangeLog6
-rw-r--r--libguile/socket.c3
3 files changed, 10 insertions, 0 deletions
diff --git a/THANKS b/THANKS
index 7fd7cedd2..6bd0c35f0 100644
--- a/THANKS
+++ b/THANKS
@@ -7,5 +7,6 @@ Bug reports and fixes from:
Lauri Alanko
Greg Harvey
Roland Orre
+ Bertrand Petit
Jorgen Schaefer
Bernard Urban
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index 746ad8315..5cdcc95c3 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -1,3 +1,9 @@
+1999-11-03 Gary Houston <ghouston@freewire.co.uk>
+
+ * socket.c (scm_fill_sockaddr): zero the address structure before
+ use, in case it has a sin_len field and the OS doesn't like random
+ values (thanks to Bertrand Petit).
+
1999-10-26 Mark Galassi <rosalia@lanl.gov>
* gh.h, gh_data.c (gh_symbol2scm): changed gh_symbol2scm() to take
diff --git a/libguile/socket.c b/libguile/socket.c
index 65133462c..1447e940a 100644
--- a/libguile/socket.c
+++ b/libguile/socket.c
@@ -325,6 +325,8 @@ scm_fill_sockaddr (fam, address, args, which_arg, proc, size)
soka = (struct sockaddr_in *)
scm_must_malloc (sizeof (struct sockaddr_in), proc);
+ /* e.g., for BSDs which don't like invalid sin_len. */
+ memset (soka, 0, sizeof (struct sockaddr_in));
soka->sin_family = AF_INET;
soka->sin_addr.s_addr =
htonl (scm_num2ulong (address, (char *) which_arg, proc));
@@ -344,6 +346,7 @@ scm_fill_sockaddr (fam, address, args, which_arg, proc, size)
soka = (struct sockaddr_un *)
scm_must_malloc (sizeof (struct sockaddr_un), proc);
+ memset (soka, 0, sizeof (struct sockaddr_un));
soka->sun_family = AF_UNIX;
SCM_ASSERT (SCM_NIMP (address) && SCM_ROSTRINGP (address), address,
which_arg, proc);