[wp-trac] [WordPress Trac] #39781: Automatic updater does not work with VSFTPd server

WordPress Trac noreply at wordpress.org
Fri Feb 3 23:26:41 UTC 2017


#39781: Automatic updater does not work with VSFTPd server
-----------------------------+-----------------------------
 Reporter:  a1cypher         |      Owner:
     Type:  defect (bug)     |     Status:  new
 Priority:  normal           |  Milestone:  Awaiting Review
Component:  Upgrade/Install  |    Version:  4.7.2
 Severity:  normal           |   Keywords:
  Focuses:                   |
-----------------------------+-----------------------------
 The automatic updater fails during update on verifying files.

 The reason for the failure is that the file wp-admin/includes/class-wp-
 filesystem-ftpext.php and wp-admin/includes/class-wp-filesystem-
 ftpsockets.php use the ftp command NLIST to verify that the files
 wordpress/readme.html and wordpress/wp-includes/version.php exist before
 continuing with the installation.

 When issuing the NLIST command to the VSFTPd server with a full filename,
 it returns with an empty list because the NLIST command is only meant to
 list directories.   See https://www.ietf.org/rfc/rfc959.txt


          NAME LIST (NLST)

             This command causes a directory listing to be sent from
             server to user site.  The pathname should specify a
             directory or other system-specific file group descriptor; a
             null argument implies the current directory.  The server
             will return a stream of names of files and no other
             information.  The data will be transferred in ASCII or
             EBCDIC type over the data connection as valid pathname
             strings separated by <CRLF> or <NL>.  (Again the user must
             ensure that the TYPE is correct.)  This command is intended
             to return information that can be used by a program to
             further process the files automatically.  For example, in
             the implementation of a "multiple get" function.

 When wordpress gets back an empty list it makes the false assumption that
 the file does not exist.

 Instead of using NLIST wordpress should use the LIST command which
 according to the same RFC should return information on the file if a file
 is specified.


          LIST (LIST)

             This command causes a list to be sent from the server to the
             passive DTP.  If the pathname specifies a directory or other
             group of files, the server should transfer a list of files
             in the specified directory.  If the pathname specifies a
             file then the server should send current information on the
             file.  A null argument implies the user's current working or
             default directory.  The data transfer is over the data
             connection in type ASCII or type EBCDIC.

 Replacing the VSFTPd server which correctly implements the NLST command
 with ProFTPd which implements the NLST command incorrectly by returning
 information about the file in question fixes the problem.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/39781>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list