[6220] in bugtraq
Re: strcpy versus strncpy
daemon@ATHENA.MIT.EDU (Chris L. Mason)
Tue Mar 3 23:50:11 1998
Date: Tue, 3 Mar 1998 11:14:16 -0500
Reply-To: "Chris L. Mason" <cmason@WYREX.COM>
From: "Chris L. Mason" <cmason@WYREX.COM>
To: BUGTRAQ@NETSPACE.ORG
In-Reply-To: <199803030031.BAA09114@tyr.diku.dk>; from Morten Welinder on Tue,
Mar 03, 1998 at 01:31:24AM +0100
On Tue, Mar 03, 1998 at 01:31:24AM +0100, Morten Welinder wrote:
> A recent article on BugTraq suggested that using strcpy should
> almost always be considered a bug. That's not right. It is,
> in fact, the wrong way around: strncpy is almost always a bug.
>
Hi,
What's wrong with using the following (I got the idea from some of
Stevens' code)?
char *sstrcpy(char *dst, size_t n, const char *src) {
if (strlen(src) > (n - 1)) {
errno = ENOSPC;
return NULL;
}
strcpy(dst, src);
dst[n - 1] = '\0';
return dst;
}
(the first 's' stands for safe (I hope))
It's not MT safe, but other than that I can't see any problems.
Chris