From 3f91c7dfe1a82286b1fc01ca2bd1a1f3108caed8 Mon Sep 17 00:00:00 2001 From: hniksic Date: Wed, 10 Jan 2001 07:06:00 -0800 Subject: [PATCH] [svn] Declare addrlen as int. Published in . --- src/ChangeLog | 6 ++++++ src/connect.c | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index b1f049de..be8bf28c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2001-01-06 Hrvoje Niksic + + * connect.c (bindport): Declare addrlen as int. Diagnosed by + Drazen Kacar . + (conaddr): Ditto. + 2001-01-09 Dan Harkless * html-url.c: A bunch of fixup of `--page-requisites'-related diff --git a/src/connect.c b/src/connect.c index 6078f599..ddaaf992 100644 --- a/src/connect.c +++ b/src/connect.c @@ -176,8 +176,11 @@ bindport (unsigned short *port) DEBUGP (("Master socket fd %d bound.\n", msock)); if (!*port) { - size_t addrlen = sizeof (struct sockaddr_in); - if (getsockname (msock, addr, (int *)&addrlen) < 0) + /* #### addrlen should be a 32-bit type, which int is not + guaranteed to be. Oh, and don't try to make it a size_t, + because that can be 64-bit. */ + int addrlen = sizeof (struct sockaddr_in); + if (getsockname (msock, addr, &addrlen) < 0) { CLOSE (msock); msock = -1; @@ -260,7 +263,8 @@ conaddr (int fd) static unsigned char res[4]; struct sockaddr_in mysrv; struct sockaddr *myaddr; - size_t addrlen = sizeof (mysrv); + int addrlen = sizeof (mysrv); /* see bindport() for discussion of + using `int' here. */ myaddr = (struct sockaddr *) (&mysrv); if (getsockname (fd, myaddr, (int *)&addrlen) < 0)