aboutsummaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorTim J. Robbins <tjr@FreeBSD.org>2003-09-28 09:45:56 +0000
committerTim J. Robbins <tjr@FreeBSD.org>2003-09-28 09:45:56 +0000
commit6613c32aa05b4720e948a6b9e001d0e54cd8cf85 (patch)
tree0cfff4304e38d2fa9e70bcb9c8f43bc3e3f5450a /usr.bin
parent7045754fcfc88ca90b00986fdbaec2cc1cc5da8f (diff)
Notes
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/talk/ctl.c6
-rw-r--r--usr.bin/talk/look_up.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/usr.bin/talk/ctl.c b/usr.bin/talk/ctl.c
index 3da8e79b9811..2597a4346c07 100644
--- a/usr.bin/talk/ctl.c
+++ b/usr.bin/talk/ctl.c
@@ -70,6 +70,9 @@ open_sockt()
{
int length;
+ (void)memset(&my_addr, 0, sizeof(my_addr));
+ my_addr.sin_family = AF_INET;
+ my_addr.sin_len = sizeof(my_addr);
my_addr.sin_addr = my_machine_addr;
my_addr.sin_port = 0;
sockt = socket(AF_INET, SOCK_STREAM, 0);
@@ -88,6 +91,9 @@ open_ctl()
{
int length;
+ (void)memset(&ctl_addr, 0, sizeof(ctl_addr));
+ ctl_addr.sin_family = AF_INET;
+ ctl_addr.sin_len = sizeof(my_addr);
ctl_addr.sin_port = 0;
ctl_addr.sin_addr = my_machine_addr;
ctl_sockt = socket(AF_INET, SOCK_DGRAM, 0);
diff --git a/usr.bin/talk/look_up.c b/usr.bin/talk/look_up.c
index d251e1ce9112..6c40933f7cbb 100644
--- a/usr.bin/talk/look_up.c
+++ b/usr.bin/talk/look_up.c
@@ -56,6 +56,7 @@ check_local()
{
CTL_RESPONSE response;
CTL_RESPONSE *rp = &response;
+ struct sockaddr addr;
/* the rest of msg was set up in get_names */
#ifdef MSG_EOR
@@ -76,9 +77,11 @@ check_local()
do {
if (rp->addr.sa_family != AF_INET)
p_error("Response uses invalid network address");
+ (void)memcpy(&addr, &rp->addr.sa_family, sizeof(addr));
+ addr.sa_family = rp->addr.sa_family;
+ addr.sa_len = sizeof(addr);
errno = 0;
- if (connect(sockt,
- (struct sockaddr *)&rp->addr, sizeof (rp->addr)) != -1)
+ if (connect(sockt, &addr, sizeof(addr)) != -1)
return (1);
} while (errno == EINTR);
if (errno == ECONNREFUSED) {