Hi,

This diff fixes some -Wsign-compare compiler warnings in ftpd(8) by
using the right types for 'i' and 'len'.  One warning is left, but I
don't see that it's fixable without suppressing the warning by a cast of
len to size_t.  And casting might be controversial in this case?!

/usr/src/libexec/ftpd/ftpd.c:2781:11: warning: comparison of integers of
different signs: 'int' and
      'unsigned long' [-Wsign-compare]
                if (len >= sizeof(buf) || len == -1) {
                    ~~~ ^  ~~~~~~~~~~~

Bye,
Jan

Index: ftpd.c
===================================================================
RCS file: /cvs/src/libexec/ftpd/ftpd.c,v
retrieving revision 1.223
diff -u -p -r1.223 ftpd.c
--- ftpd.c      3 Sep 2016 15:00:48 -0000       1.223
+++ ftpd.c      24 Nov 2018 22:26:02 -0000
@@ -390,10 +390,10 @@ main(int argc, char *argv[])
        endpwent();
 
        if (daemon_mode) {
-               int *fds, i, fd;
+               int *fds, fd;
                struct pollfd *pfds;
                struct addrinfo hints, *res, *res0;
-               nfds_t n;
+               nfds_t n, i;
 
                /*
                 * Detach from parent.
@@ -1809,8 +1809,8 @@ statcmd(void)
                ispassive++;
                goto printaddr;
        } else if (usedefault == 0) {
-               size_t alen;
-               int af, i;
+               size_t alen, i;
+               int af;
 
                su = (union sockunion *)&data_dest;
 printaddr:
@@ -2545,7 +2545,8 @@ guniquefd(char *local, char **nam)
 {
        static char new[PATH_MAX];
        struct stat st;
-       int count, len, fd;
+       size_t len;
+       int count, fd;
        char *cp;
 
        cp = strrchr(local, '/');

Reply via email to