]> sjero.net Git - wget/commitdiff
[svn] Declare addrlen as int. Published in <sxsu27cbtzu.fsf@florida.arsdigita.de>.
authorhniksic <devnull@localhost>
Wed, 10 Jan 2001 15:06:00 +0000 (07:06 -0800)
committerhniksic <devnull@localhost>
Wed, 10 Jan 2001 15:06:00 +0000 (07:06 -0800)
src/ChangeLog
src/connect.c

index b1f049de4bfbf79464e6df4adc8e0f77dd8284ec..be8bf28c2ead6929d802643fc091fa9fc852eb19 100644 (file)
@@ -1,3 +1,9 @@
+2001-01-06  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+       * connect.c (bindport): Declare addrlen as int.  Diagnosed by
+       Drazen Kacar <dave@arsdigita.com>.
+       (conaddr): Ditto.
+
 2001-01-09  Dan Harkless  <wget@harkless.org>
 
        * html-url.c: A bunch of fixup of `--page-requisites'-related
index 6078f599847daa4224c0652a3d45d5a26fa6ccb9..ddaaf99283abf11b6189993c4434091778b10861 100644 (file)
@@ -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)