Hi tech, there are some "never read" variables in ftp.c. The local variable "error" is set but there is either a
goto bad; ........ bad: (void)close(data), data = -1; if (tmpno) sendport = 1; return (1); and the variable is not going to read here. or the variable is just set but never read - without a goto statement. Am I right, or are there other reasons why the error variable is set but not used? Fritjof Index: ftp.c =================================================================== RCS file: /cvs/src/usr.bin/ftp/ftp.c,v retrieving revision 1.84 diff -u -p -r1.84 ftp.c --- ftp.c 20 Dec 2013 13:44:51 -0000 1.84 +++ ftp.c 22 Apr 2014 19:40:33 -0000 @@ -1408,13 +1408,11 @@ reinit: if (data_addr.su_family != AF_INET) { fputs( "Passive mode AF mismatch. Shouldn't happen!\n", ttyout); - error = 1; goto bad; } if (code / 10 == 22 && code != 227) { fputs("wrong server: return code must be 227\n", ttyout); - error = 1; goto bad; } error = sscanf(pasv, "%u,%u,%u,%u,%u,%u", @@ -1423,10 +1421,8 @@ reinit: if (error != 6) { fputs( "Passive mode address scan failure. Shouldn't happen!\n", ttyout); - error = 1; goto bad; } - error = 0; memset(&data_addr, 0, sizeof(data_addr)); data_addr.su_family = AF_INET; data_addr.su_len = sizeof(struct sockaddr_in); @@ -1437,7 +1433,6 @@ reinit: if (code / 10 == 22 && code != 228) { fputs("wrong server: return code must be 228\n", ttyout); - error = 1; goto bad; } switch (data_addr.su_family) { @@ -1450,17 +1445,14 @@ reinit: if (error != 9) { fputs( "Passive mode address scan failure. Shouldn't happen!\n", ttyout); - error = 1; goto bad; } if (af != 4 || hal != 4 || pal != 2) { fputs( "Passive mode AF mismatch. Shouldn't happen!\n", ttyout); - error = 1; goto bad; } - error = 0; memset(&data_addr, 0, sizeof(data_addr)); data_addr.su_family = AF_INET; data_addr.su_len = sizeof(struct sockaddr_in); @@ -1481,17 +1473,14 @@ reinit: if (error != 21) { fputs( "Passive mode address scan failure. Shouldn't happen!\n", ttyout); - error = 1; goto bad; } if (af != 6 || hal != 16 || pal != 2) { fputs( "Passive mode AF mismatch. Shouldn't happen!\n", ttyout); - error = 1; goto bad; } - error = 0; memset(&data_addr, 0, sizeof(data_addr)); data_addr.su_family = AF_INET6; data_addr.su_len = sizeof(struct sockaddr_in6); @@ -1515,20 +1504,17 @@ reinit: if (code / 10 == 22 && code != 229) { fputs("wrong server: return code must be 229\n", ttyout); - error = 1; goto bad; } if (sscanf(pasv, "%c%c%c%d%c", &delim[0], &delim[1], &delim[2], &port[1], &delim[3]) != 5) { fputs("parse error!\n", ttyout); - error = 1; goto bad; } if (delim[0] != delim[1] || delim[0] != delim[2] || delim[0] != delim[3]) { fputs("parse error!\n", ttyout); - error = 1; goto bad; } data_addr = hisctladdr;