Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 May 2001 20:13:26 +0100
From:      David Malone <dwmalone@maths.tcd.ie>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        Garrett Wollman <wollman@khavrinen.lcs.mit.edu>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/lib/libc/gen setproctitle.3 syslog.3 src/lib/libc/stdio printf.3
Message-ID:  <20010531201326.A68855@walton.maths.tcd.ie>
In-Reply-To: <20010531115418.B96927@xor.obsecurity.org>; from kris@obsecurity.org on Thu, May 31, 2001 at 11:54:18AM -0700
References:  <200105252042.f4PKgfu84635@freefall.freebsd.org> <20010526004601.2109A3E2F@bazooka.unixfreak.org> <20010530172131.A60056@FreeBSD.org> <20010530182822.A79068@xor.obsecurity.org> <200105311537.LAA23815@khavrinen.lcs.mit.edu> <20010531115418.B96927@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, May 31, 2001 at 11:54:18AM -0700, Kris Kennaway wrote:
> On Thu, May 31, 2001 at 11:37:31AM -0400, Garrett Wollman wrote:
> > <<On Wed, 30 May 2001 18:28:22 -0700, Kris Kennaway <kris@obsecurity.org> said:
> > 
> > > things like how to use strncpy() properly
> > 
> > Mostly, ``don't.''  In almost every case where you think you might
> > want to use strncpy(), strncat() is -- despite its name -- the correct
> > function to use.
> 
> Not Helpful.
> 
> People use the function and will do so forever, so we should explain
> how to use it correctly.

AFAIK: strn{cpy,cat} are designed for working on strings which are
stored in fixed sized storage (such as those in struct utmp). These
are not the same as "normal" C strings as they are only nul terminated
if the string is smaller than the storage space. Using strn{cpy,cat}
on normal C strings is just too fiddley to get right all the time.

In most cases the functions that do what people want are snprintf
(which is in C99) or the strl{cpy,cat} (which atleast *BSD have?).
I dunno what Posix or SUSv? say about these functions.

	David.

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




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