Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Aug 2000 14:13:33 +0300 (EEST)
From:      netch@carrier.kiev.ua (Valentin Nechayev)
To:        Kris Kennaway <kris@FreeBSD.ORG>, freebsd-audit@FreeBSD.ORG
Subject:   Re: ftp(1) patch
Message-ID:  <200008291113.OFF57814@burka.carrier.kiev.ua>
In-Reply-To: <Pine.BSF.4.21.0008042101550.64027-100000@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Kris Kennaway wrote:

KK> Index: cmds.c
KK> ===================================================================
KK> RCS file: /home/ncvs/src/usr.bin/ftp/cmds.c,v
KK> retrieving revision 1.18
KK> diff -u -r1.18 cmds.c
KK> --- cmds.c	2000/06/24 15:34:30	1.18
KK> +++ cmds.c	2000/08/05 03:52:38
KK> @@ -125,7 +125,7 @@
KK>  	else
KK>  		comret = command("TYPE %s", p->t_mode);
KK>  	if (comret == COMPLETE) {
KK> -		(void)strcpy(typename, p->t_name);
KK> +		(void)strlcpy(typename, p->t_name, sizeof(typename));

In all these fixes, do you prove that resulting string cannot be cut?
strlcpy() provides only buffer nonoevrflowing, but not correctness of
result in buffer.

Consider change strlcpy in these fixes to:

size_t checked_strcopy( char* To, const char* From, size_t Size )
{
	register size_t Result = strlcpy( To, From, Size );
	if( Result >= Size )
		errx( EX_DATAERR, "too long string" );
	return Result;
}

Also, `linefull' variable is set, but is not cheched AFAIS elsewhere.


/netch


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-audit" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200008291113.OFF57814>