Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jan 1997 10:50:18 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        bde@zeta.org.au (Bruce Evans)
Cc:        bde@zeta.org.au, davidn@unique.usn.blaze.net.au, hackers@freebsd.org, joerg_wunsch@uriah.heep.sax.de
Subject:   Re: unused variable in su
Message-ID:  <199701141750.KAA00168@phaeton.artisoft.com>
In-Reply-To: <199701140347.OAA20727@godzilla.zeta.org.au> from "Bruce Evans" at Jan 14, 97 02:47:57 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> How about using functions strancpy(), ..., asnprintf() that abort
> if the string is too long?  This would be better than silently
> truncating the string.  It would also take less code for the
> strncpy() case since null trermination would be guaranteed (else
> abort).

You can get the same effect using strncpy(), and presetting the
terminal value in the buffer to 0, then comparing for 0 following
the strncpy... ie:

	char	mybuf[ SOMELEN];

	mybuf[ SOMELEN - 1] = 0;
	strncpy( mybuf, src, SOMELEN);
	if( mybuf[ SOMELEN - 1] != 0) {
		/* abort ...*/
	}

This works because of the side-effect "...and not terminating dst
if src is more than len characters long."


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



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