Changeset 425927e in rtems


Ignore:
Timestamp:
Apr 4, 2011, 5:08:59 PM (9 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.9
Children:
43ce60a
Parents:
2fe013a1
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

    r2fe013a1 r425927e  
     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-03-08      Joel Sherrill <joel.sherrilL@OARcorp.com>
    28
  • cpukit/ftpd/ftpd.c

    r2fe013a1 r425927e  
    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 *
     
    16721676  else if (!strcmp("RETR", cmd))
    16731677  {
    1674     sscanf(args, "%254s", fname);
     1678    strncpy(fname, args, 254);
    16751679    command_retrieve(info, fname);
    16761680  }
    16771681  else if (!strcmp("STOR", cmd))
    16781682  {
    1679     sscanf(args, "%254s", fname);
     1683    strncpy(fname, args, 254);
    16801684    command_store(info, fname);
    16811685  }
    16821686  else if (!strcmp("LIST", cmd))
    16831687  {
    1684     sscanf(args, "%254s", fname);
     1688    strncpy(fname, args, 254);
    16851689    command_list(info, fname, 1);
    16861690  }
    16871691  else if (!strcmp("NLST", cmd))
    16881692  {
    1689     sscanf(args, "%254s", fname);
     1693    strncpy(fname, args, 254);
    16901694    command_list(info, fname, 0);
    16911695  }
    16921696  else if (!strcmp("MDTM", cmd))
    16931697  {
    1694     sscanf(args, "%254s", fname);
     1698    strncpy(fname, args, 254);
    16951699    command_mdtm(info, fname);
    16961700  }
     
    17281732    }
    17291733    else if (
    1730       1 == sscanf(args, "%254s", fname) &&
     1734      strncpy(fname, args, 254) &&
    17311735      unlink(fname) == 0)
    17321736    {
     
    17501754        send_reply(info, 550, "Access denied.");
    17511755      }
    1752       else if(
    1753         2 == sscanf(args, "%o %254s", &mask, fname) &&
    1754         chmod(fname, (mode_t)mask) == 0)
    1755       {
    1756         send_reply(info, 257, "CHMOD successful.");
    1757       }
    1758       else
    1759       {
    1760         send_reply(info, 550, "CHMOD failed.");
     1756      else {
     1757        char *c;
     1758        c = strchr(args, ' ');
     1759        if((c != NULL) && (sscanf(args, "%o", &mask) == 1) && strncpy(fname, c+1, 254)
     1760          && (chmod(fname, (mode_t)mask) == 0))
     1761          send_reply(info, 257, "CHMOD successful.");
     1762        else
     1763          send_reply(info, 550, "CHMOD failed.");
    17611764      }
    17621765    }
     
    17711774    }
    17721775    else if (
    1773       1 == sscanf(args, "%254s", fname) &&
     1776      strncpy(fname, args, 254) &&
    17741777      rmdir(fname) == 0)
    17751778    {
     
    17881791    }
    17891792    else if (
    1790       1 == sscanf(args, "%254s", fname) &&
     1793      strncpy(fname, args, 254) &&
    17911794      mkdir(fname, S_IRWXU | S_IRWXG | S_IRWXO) == 0)
    17921795    {
     
    18001803  else if (!strcmp("CWD", cmd))
    18011804  {
    1802     sscanf(args, "%254s", fname);
     1805    strncpy(fname, args, 254);
    18031806    command_cwd(info, fname);
    18041807  }
Note: See TracChangeset for help on using the changeset viewer.