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.