[6220] in bugtraq

home help back first fref pref prev next nref lref last post

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

home help back first fref pref prev next nref lref last post