Subject: ftpd changes (was: CVS commit: src)
To: None <lukem@netbsd.org>
From: Simon Burge <simonb@netbsd.org>
List: tech-userlevel
Date: 05/18/1999 10:53:49
Luke Mewburn wrote:
> Module Name: src
> Committed By: lukem
> Date: Mon May 17 15:14:54 UTC 1999
>
> Modified Files:
>
> src/libexec/ftpd: Makefile conf.c extern.h ftpcmd.y ftpd.8 ftpd.c
> popen.c
> Removed Files:
>
> src/libexec/ftpd: util.c
>
> Log Message:
>
> features/fixes:
> ...
> * link with ../../bin/ls, so that bin/ls is not required under a
> chroot()ed area for `LIST' to work. based on [bin/4497] from
> "Soren S. Jorvang" <soren@t.dk>
This seems to have broken filename wildcard processing. With the
following directory:
227 Entering Passive Mode (127,0,0,1,255,162)
150 Opening ASCII mode data connection for '/bin/ls'.
total 14
-r--r--r-- 1 root wheel 920 Dec 6 1995 README
drwxr-xr-x 2 root wheel 512 Jan 8 12:04 bin
drwxr-xr-x 2 root wheel 512 Jan 8 11:44 dev
drwxr-xr-x 2 root wheel 512 Jan 8 19:33 etc
drwxr-xr-x 2 root wheel 512 Jan 8 19:33 incoming
drwxr-xr-x 23 root wheel 512 Apr 20 12:20 pub
drwxr-xr-x 3 root wheel 512 Jan 8 19:31 usr
226 Transfer complete.
on 1.4 we get:
ftp> dir *e*
227 Entering Passive Mode (127,0,0,1,255,160)
150 Opening ASCII mode data connection for '/bin/ls'.
dev:
etc:
total 6
-r--r--r-- 1 root wheel 38 Nov 19 1995 group
-r--r--r-- 1 root wheel 163 Nov 18 1995 passwd
-r--r--r-- 1 root wheel 250 Nov 18 1995 svc.conf
226 Transfer complete.
and with the new ftpd we get (for a normal user login):
ftp> dir *e*
227 Entering Passive Mode (127,0,0,1,255,165)
150 Opening ASCII mode data connection for '/bin/ls'.
226-Command returned an exit status of 1
226-Command error messages:
226- ftpd: %s: No such file or directory
226-End of command error messages.
226 Transfer complete.
and with the new ftpd for an anonymous login we get:
ftp> dir *e*
227 Entering Passive Mode (172,73,42,230,255,133)
150 Opening ASCII mode data connection for '/bin/ls'.
226-Command returned an exit status of 1
226 Transfer complete.
Of course, in a perfect world the fork()/exec() wouldn't be necessary
either...
Simon.