Changeset ff49ffe in rtems


Ignore:
Timestamp:
Apr 4, 2011, 5:08:34 PM (9 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.11, master
Children:
bd9baa81
Parents:
9c24c73
Message:

2011-04-04 Sebastien Bourdeauducq <sebastien.bourdeauducq@…>

PR 1722/networking

  • ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to filenames with spaces in them.
Location:
cpukit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    r9c24c73 rff49ffe  
     12011-04-04      Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
     2
     3        PR 1722/networking
     4        * ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to
     5        filenames with spaces in them.
     6
    172011-04-04      Joel Sherrill <joel.sherrilL@OARcorp.com>
    28
  • cpukit/ftpd/ftpd.c

    r9c24c73 rff49ffe  
    1616 *  Changes:
    1717 *
     18 *    2010-12-02        Sebastien Bourdeauducq <sebastien@milkymist.org>
     19 *
     20 *      * Support spaces in filenames
     21 *
    1822 *    2001-01-31        Sergei Organov <osv@javad.ru>
    1923 *
     
    16811685  else if (!strcmp("RETR", cmd))
    16821686  {
    1683     sscanf(args, "%254s", fname);
     1687    strncpy(fname, args, 254);
    16841688    command_retrieve(info, fname);
    16851689  }
    16861690  else if (!strcmp("STOR", cmd))
    16871691  {
    1688     sscanf(args, "%254s", fname);
     1692    strncpy(fname, args, 254);
    16891693    command_store(info, fname);
    16901694  }
    16911695  else if (!strcmp("LIST", cmd))
    16921696  {
    1693     sscanf(args, "%254s", fname);
     1697    strncpy(fname, args, 254);
    16941698    command_list(info, fname, 1);
    16951699  }
    16961700  else if (!strcmp("NLST", cmd))
    16971701  {
    1698     sscanf(args, "%254s", fname);
     1702    strncpy(fname, args, 254);
    16991703    command_list(info, fname, 0);
    17001704  }
    17011705  else if (!strcmp("MDTM", cmd))
    17021706  {
    1703     sscanf(args, "%254s", fname);
     1707    strncpy(fname, args, 254);
    17041708    command_mdtm(info, fname);
    17051709  }
     
    17371741    }
    17381742    else if (
    1739       1 == sscanf(args, "%254s", fname) &&
     1743      strncpy(fname, args, 254) &&
    17401744      unlink(fname) == 0)
    17411745    {
     
    17591763        send_reply(info, 550, "Access denied.");
    17601764      }
    1761       else if(
    1762         2 == sscanf(args, "%o %254s", &mask, fname) &&
    1763         chmod(fname, (mode_t)mask) == 0)
    1764       {
    1765         send_reply(info, 257, "CHMOD successful.");
    1766       }
    1767       else
    1768       {
    1769         send_reply(info, 550, "CHMOD failed.");
     1765      else {
     1766        char *c;
     1767        c = strchr(args, ' ');
     1768        if((c != NULL) && (sscanf(args, "%o", &mask) == 1) && strncpy(fname, c+1, 254)
     1769          && (chmod(fname, (mode_t)mask) == 0))
     1770          send_reply(info, 257, "CHMOD successful.");
     1771        else
     1772          send_reply(info, 550, "CHMOD failed.");
    17701773      }
    17711774    }
     
    17801783    }
    17811784    else if (
    1782       1 == sscanf(args, "%254s", fname) &&
     1785      strncpy(fname, args, 254) &&
    17831786      rmdir(fname) == 0)
    17841787    {
     
    17971800    }
    17981801    else if (
    1799       1 == sscanf(args, "%254s", fname) &&
     1802      strncpy(fname, args, 254) &&
    18001803      mkdir(fname, S_IRWXU | S_IRWXG | S_IRWXO) == 0)
    18011804    {
     
    18091812  else if (!strcmp("CWD", cmd))
    18101813  {
    1811     sscanf(args, "%254s", fname);
     1814    strncpy(fname, args, 254);
    18121815    command_cwd(info, fname);
    18131816  }
Note: See TracChangeset for help on using the changeset viewer.