Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jul 2002 09:04:20 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        keramida@FreeBSD.ORG
Cc:        bde@zeta.org.au, des@ofug.org, freebsd-audit@FreeBSD.ORG
Subject:   Re: bin/ln & WARNS=5
Message-ID:  <20020715.090420.83279095.imp@bsdimp.com>
In-Reply-To: <20020715111436.GD50130@hades.hell.gr>
References:  <xzpele59w21.fsf@flood.ping.uio.no> <20020715202126.S40071-100000@gamplex.bde.org> <20020715111436.GD50130@hades.hell.gr>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20020715111436.GD50130@hades.hell.gr>
            Giorgos Keramidas <keramida@FreeBSD.ORG> writes:
: +		if ((pathlen = snprintf(path, sizeof(path), "%s/%s",
: +		    source, p)) == -1 || pathlen >= (int)sizeof(path)) {

That's down right stupid.

snprintf never returns a negative number.  It always returns the
number of characters that it would have used to make the string.

The code was right before.  However, maybe the following is better and
clearer:

	if (strlen(source) + strlen(p) + 1 >= PATH_MAX) {
		... ETOOLONG stuff
	}	
	snprintf(...);

Warner

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?20020715.090420.83279095.imp>