[BACK]Return to ftp.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ftp

Diff for /src/usr.bin/ftp/ftp.c between version 1.84 and 1.85

version 1.84, 2013/12/20 13:44:51 version 1.85, 2014/04/22 20:48:41
Line 1408 
Line 1408 
                         if (data_addr.su_family != AF_INET) {                          if (data_addr.su_family != AF_INET) {
                                 fputs(                                  fputs(
 "Passive mode AF mismatch. Shouldn't happen!\n", ttyout);  "Passive mode AF mismatch. Shouldn't happen!\n", ttyout);
                                 error = 1;  
                                 goto bad;                                  goto bad;
                         }                          }
                         if (code / 10 == 22 && code != 227) {                          if (code / 10 == 22 && code != 227) {
                                 fputs("wrong server: return code must be 227\n",                                  fputs("wrong server: return code must be 227\n",
                                         ttyout);                                          ttyout);
                                 error = 1;  
                                 goto bad;                                  goto bad;
                         }                          }
                         error = sscanf(pasv, "%u,%u,%u,%u,%u,%u",                          error = sscanf(pasv, "%u,%u,%u,%u,%u,%u",
Line 1423 
Line 1421 
                         if (error != 6) {                          if (error != 6) {
                                 fputs(                                  fputs(
 "Passive mode address scan failure. Shouldn't happen!\n", ttyout);  "Passive mode address scan failure. Shouldn't happen!\n", ttyout);
                                 error = 1;  
                                 goto bad;                                  goto bad;
                         }                          }
                         error = 0;  
                         memset(&data_addr, 0, sizeof(data_addr));                          memset(&data_addr, 0, sizeof(data_addr));
                         data_addr.su_family = AF_INET;                          data_addr.su_family = AF_INET;
                         data_addr.su_len = sizeof(struct sockaddr_in);                          data_addr.su_len = sizeof(struct sockaddr_in);
Line 1437 
Line 1433 
                         if (code / 10 == 22 && code != 228) {                          if (code / 10 == 22 && code != 228) {
                                 fputs("wrong server: return code must be 228\n",                                  fputs("wrong server: return code must be 228\n",
                                         ttyout);                                          ttyout);
                                 error = 1;  
                                 goto bad;                                  goto bad;
                         }                          }
                         switch (data_addr.su_family) {                          switch (data_addr.su_family) {
Line 1450 
Line 1445 
                                 if (error != 9) {                                  if (error != 9) {
                                         fputs(                                          fputs(
 "Passive mode address scan failure. Shouldn't happen!\n", ttyout);  "Passive mode address scan failure. Shouldn't happen!\n", ttyout);
                                         error = 1;  
                                         goto bad;                                          goto bad;
                                 }                                  }
                                 if (af != 4 || hal != 4 || pal != 2) {                                  if (af != 4 || hal != 4 || pal != 2) {
Line 1460 
Line 1454 
                                         goto bad;                                          goto bad;
                                 }                                  }
   
                                 error = 0;  
                                 memset(&data_addr, 0, sizeof(data_addr));                                  memset(&data_addr, 0, sizeof(data_addr));
                                 data_addr.su_family = AF_INET;                                  data_addr.su_family = AF_INET;
                                 data_addr.su_len = sizeof(struct sockaddr_in);                                  data_addr.su_len = sizeof(struct sockaddr_in);
Line 1481 
Line 1474 
                                 if (error != 21) {                                  if (error != 21) {
                                         fputs(                                          fputs(
 "Passive mode address scan failure. Shouldn't happen!\n", ttyout);  "Passive mode address scan failure. Shouldn't happen!\n", ttyout);
                                         error = 1;  
                                         goto bad;                                          goto bad;
                                 }                                  }
                                 if (af != 6 || hal != 16 || pal != 2) {                                  if (af != 6 || hal != 16 || pal != 2) {
                                         fputs(                                          fputs(
 "Passive mode AF mismatch. Shouldn't happen!\n", ttyout);  "Passive mode AF mismatch. Shouldn't happen!\n", ttyout);
                                         error = 1;  
                                         goto bad;                                          goto bad;
                                 }                                  }
   
                                 error = 0;  
                                 memset(&data_addr, 0, sizeof(data_addr));                                  memset(&data_addr, 0, sizeof(data_addr));
                                 data_addr.su_family = AF_INET6;                                  data_addr.su_family = AF_INET6;
                                 data_addr.su_len = sizeof(struct sockaddr_in6);                                  data_addr.su_len = sizeof(struct sockaddr_in6);
Line 1506 
Line 1496 
                                 data_addr.su_port = htons(pack2(port, 0));                                  data_addr.su_port = htons(pack2(port, 0));
                                 break;                                  break;
                         default:                          default:
                                 error = 1;                                  fputs("Bad family!\n", ttyout);
                                   goto bad;
                         }                          }
                 } else if (strcmp(pasvcmd, "EPSV") == 0) {                  } else if (strcmp(pasvcmd, "EPSV") == 0) {
                         char delim[4];                          char delim[4];
Line 1515 
Line 1506 
                         if (code / 10 == 22 && code != 229) {                          if (code / 10 == 22 && code != 229) {
                                 fputs("wrong server: return code must be 229\n",                                  fputs("wrong server: return code must be 229\n",
                                         ttyout);                                          ttyout);
                                 error = 1;  
                                 goto bad;                                  goto bad;
                         }                          }
                         if (sscanf(pasv, "%c%c%c%d%c", &delim[0],                          if (sscanf(pasv, "%c%c%c%d%c", &delim[0],
                                         &delim[1], &delim[2], &port[1],                                          &delim[1], &delim[2], &port[1],
                                         &delim[3]) != 5) {                                          &delim[3]) != 5) {
                                 fputs("parse error!\n", ttyout);                                  fputs("parse error!\n", ttyout);
                                 error = 1;  
                                 goto bad;                                  goto bad;
                         }                          }
                         if (delim[0] != delim[1] || delim[0] != delim[2]                          if (delim[0] != delim[1] || delim[0] != delim[2]
                          || delim[0] != delim[3]) {                           || delim[0] != delim[3]) {
                                 fputs("parse error!\n", ttyout);                                  fputs("parse error!\n", ttyout);
                                 error = 1;  
                                 goto bad;                                  goto bad;
                         }                          }
                         data_addr = hisctladdr;                          data_addr = hisctladdr;

Legend:
Removed from v.1.84  
changed lines
  Added in v.1.85