Re: strcpy versus strncpy

Chris L. Mason (cmason@WYREX.COM)
Tue, 03 Mar 1998 11:14:16 -0500

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