Red Hat Bugzilla – Bug 304
ftp's mget doesn't work if runique is enabled
Last modified: 2008-05-01 11:37:48 EDT
The ftp client has a bug. `mget'' doesn't get any files if
``runique'' is enabled. The problem is inconsistent naming
of temporary files which contain the list of remote files to
Example. Try this .netrc file on a directory that contains
default login anonymous password user@host
Standard output will be something like this:
230 Guest login ok, access restrictions apply.
Interactive mode off.
Receive unique on.
250 CWD command successful.
Note that ``mget *'' doesn't retrieve any files at all.
More low-level description of the bug. A tmp file name is
created in source file cmds.c, function remglob(), variable
`temp''. In function recvrequest() a unique file name is
created in variable `local'' from the argument char pointer
in `temp''. In other words, gunique() in file ftp.c is
called and appends a .1 (,.2, and so on) to a path. The
output from FTP protocol command NLST is stored in file
/tmp/ftpa*.1. But remglob() tries to load the file contents
from the shorter name (/tmp/ftpa) that has not postfix. So
the mget() function doesn't reach its download loop and
exits without getting any file.
Whoever is more familiar with the code should have no
problems fixing this.
This is fixed in the devel tree; it will appear in the next rawhide