Bug:
        Some networking functions take a pointer to a length.
        These are supposed to be size_t, not int.
OSes/Compiler:
        These fixes were needed to make Amanda 2.4.1p1 compile
        on one of the platforms (below).  These changes were
        carried forward to 2.4.2.  I am not sure which platform
        required this change, but this same code was subsequently
        used to compile successfully on:
                Solaris 2.4     gcc
                Solaris 2.5.1   gcc
                Solaris 2.6     gcc
                Solaris 8       cc
                AIX4.2.1        cc
                AIX4.3.3        cc
                FreeBSD3.x      cc
                HP-UX9.05       cc
                HP-UX10.02      cc
                Linux2.2        gcc
                Unixware2.1     cc
Hardware:
        Irrelevant, but Exabyte 230D.

Index: restore-src/amidxtaped.c
===================================================================
RCS file: /u/itsrc/cvs/backup/amanda/restore-src/amidxtaped.c,v
retrieving revision 1.1.1.2
retrieving revision 1.1.1.2.2.1
diff -u -r1.1.1.2 -r1.1.1.2.2.1
--- amidxtaped.c        2000/11/27 21:25:32     1.1.1.2
+++ amidxtaped.c        2000/11/27 22:11:22     1.1.1.2.2.1
@@ -97,6 +97,7 @@
     char **amrestore_args;
     char *buf = NULL;
     int i;
+    size_t addrlen;
     char *amrestore_path;
     pid_t pid;
     int isafile;
@@ -166,8 +167,8 @@
     }
 #endif
 
-    i = sizeof (addr);
-    if (getpeername(0, (struct sockaddr *)&addr, &i) == -1)
+    addrlen = sizeof (addr);
+    if (getpeername(0, (struct sockaddr *)&addr, &addrlen) == -1)
        error("getpeername: %s", strerror(errno));
     if (addr.sin_family != AF_INET || ntohs(addr.sin_port) == 20) {
        error("connection rejected from %s family %d port %d",
Index: common-src/dgram.c
===================================================================
RCS file: /u/itsrc/cvs/backup/amanda/common-src/dgram.c,v
retrieving revision 1.1.1.2
retrieving revision 1.1.1.2.2.1
diff -u -r1.1.1.2 -r1.1.1.2.2.1
--- dgram.c     2000/11/27 21:24:38     1.1.1.2
+++ dgram.c     2000/11/27 22:11:20     1.1.1.2.2.1
@@ -49,7 +49,8 @@
 dgram_t *dgram;
 int *portp;
 {
-    int s, len;
+    int s;
+    size_t len;
     struct sockaddr_in name;
 
     if((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1) 
@@ -158,7 +159,8 @@
 {
     fd_set ready;
     struct timeval to;
-    int size, addrlen, sock;
+    int size, sock;
+    size_t addrlen;
 
     sock = dgram->socket;
 
Index: common-src/stream.c
===================================================================
RCS file: /u/itsrc/cvs/backup/amanda/common-src/stream.c,v
retrieving revision 1.1.1.2
retrieving revision 1.1.1.2.2.1
diff -u -r1.1.1.2 -r1.1.1.2.2.1
--- stream.c    2000/11/27 21:24:45     1.1.1.2
+++ stream.c    2000/11/27 22:11:21     1.1.1.2.2.1
@@ -41,7 +41,8 @@
 int *portp;
 int sendsize, recvsize;
 {
-    int server_socket, len;
+    int server_socket;
+    size_t len;
 #ifdef SO_KEEPALIVE
     int on = 1;
     int r;
@@ -211,7 +212,7 @@
 
 /* don't care about these values */
 static struct sockaddr_in addr;
-static int addrlen;
+static size_t addrlen;
 
 int stream_accept(server_socket, timeout, sendsize, recvsize)
 int server_socket, timeout, sendsize, recvsize;

Reply via email to