From 60ef74bf70c4d050ca202f0967aa92b130d8f3e1 Mon Sep 17 00:00:00 2001 From: lebel <> Date: Wed, 27 Jun 2001 00:58:56 +0000 Subject: [PATCH] use strlcpy vs strncpy+a[len-1]='\0'. millert@ ok. --- src/lib/libc/crypt/crypt.c | 7 +++---- src/lib/libc/stdlib/realpath.c | 5 ++--- src/lib/libc/string/__strerror.c | 10 ++++------ src/lib/libc/string/__strsignal.c | 10 ++++------ 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/src/lib/libc/crypt/crypt.c b/src/lib/libc/crypt/crypt.c index 8fd319a4..d1a342c1 100644 --- a/src/lib/libc/crypt/crypt.c +++ b/src/lib/libc/crypt/crypt.c @@ -1,4 +1,4 @@ -/* $OpenBSD: crypt.c,v 1.13 1998/03/22 19:01:18 niklas Exp $ */ +/* $OpenBSD: crypt.c,v 1.14 2001/06/27 00:58:53 lebel Exp $ */ /* * FreeSec: libcrypt @@ -52,7 +52,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: crypt.c,v 1.13 1998/03/22 19:01:18 niklas Exp $"; +static char rcsid[] = "$OpenBSD: crypt.c,v 1.14 2001/06/27 00:58:53 lebel Exp $"; #endif /* LIBC_SCCS and not lint */ #include @@ -650,7 +650,7 @@ crypt(key, setting) if (des_setkey((u_char *) keybuf)) return(NULL); } - strncpy((char *)output, setting, 9); + strlcpy((char *)output, setting, 10); /* * Double check that we weren't given a short setting. @@ -659,7 +659,6 @@ crypt(key, setting) * Just make sure the output string doesn't have an extra * NUL in it. */ - output[9] = '\0'; p = output + strlen((const char *)output); } else { /* diff --git a/src/lib/libc/stdlib/realpath.c b/src/lib/libc/stdlib/realpath.c index 02886014..a6195c1d 100644 --- a/src/lib/libc/stdlib/realpath.c +++ b/src/lib/libc/stdlib/realpath.c @@ -35,7 +35,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: realpath.c,v 1.4 1998/05/18 09:55:19 deraadt Exp $"; +static char *rcsid = "$OpenBSD: realpath.c,v 1.5 2001/06/27 00:58:56 lebel Exp $"; #endif /* LIBC_SCCS and not lint */ #include @@ -78,8 +78,7 @@ realpath(path, resolved) * if it is a directory, then change to that directory. * get the current directory name and append the basename. */ - (void)strncpy(resolved, path, MAXPATHLEN - 1); - resolved[MAXPATHLEN - 1] = '\0'; + strlcpy(resolved, path, MAXPATHLEN); loop: q = strrchr(resolved, '/'); if (q != NULL) { diff --git a/src/lib/libc/string/__strerror.c b/src/lib/libc/string/__strerror.c index 9c023f8a..04fdce58 100644 --- a/src/lib/libc/string/__strerror.c +++ b/src/lib/libc/string/__strerror.c @@ -32,7 +32,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: __strerror.c,v 1.6 1996/09/25 08:17:30 deraadt Exp $"; +static char *rcsid = "$OpenBSD: __strerror.c,v 1.7 2001/06/27 00:58:56 lebel Exp $"; #endif /* LIBC_SCCS and not lint */ #ifdef NLS @@ -87,16 +87,14 @@ __strerror(num, buf) errnum = num; /* convert to unsigned */ if (errnum < sys_nerr) { #ifdef NLS - strncpy(buf, catgets(catd, 1, errnum, - (char *)sys_errlist[errnum]), NL_TEXTMAX-1); - buf[NL_TEXTMAX - 1] = '\0'; + strlcpy(buf, catgets(catd, 1, errnum, + (char *)sys_errlist[errnum]), NL_TEXTMAX); #else return(sys_errlist[errnum]); #endif } else { #ifdef NLS - strncpy(buf, catgets(catd, 1, 0xffff, UPREFIX), NL_TEXTMAX-1); - buf[NL_TEXTMAX - 1] = '\0'; + strlcpy(buf, catgets(catd, 1, 0xffff, UPREFIX), NL_TEXTMAX); #else strcpy(buf, UPREFIX); #endif diff --git a/src/lib/libc/string/__strsignal.c b/src/lib/libc/string/__strsignal.c index ae0df72c..4ca5bad3 100644 --- a/src/lib/libc/string/__strsignal.c +++ b/src/lib/libc/string/__strsignal.c @@ -32,7 +32,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: __strsignal.c,v 1.5 1996/09/25 13:19:01 deraadt Exp $"; +static char *rcsid = "$OpenBSD: __strsignal.c,v 1.6 2001/06/27 00:58:56 lebel Exp $"; #endif /* LIBC_SCCS and not lint */ #ifdef NLS @@ -80,16 +80,14 @@ __strsignal(num, buf) signum = num; /* convert to unsigned */ if (signum < NSIG) { #ifdef NLS - strncpy(buf, catgets(catd, 2, signum, - (char *)sys_siglist[signum]), NL_TEXTMAX-1); - buf[NL_TEXTMAX-1] = '\0'; + strlcpy(buf, catgets(catd, 2, signum, + (char *)sys_siglist[signum]), NL_TEXTMAX); #else return((char *)sys_siglist[signum]); #endif } else { #ifdef NLS - strncpy(buf, catgets(catd, 1, 0xffff, UPREFIX), NL_TEXTMAX-1); - buf[NL_TEXTMAX-1] = '\0'; + strlcpy(buf, catgets(catd, 1, 0xffff, UPREFIX), NL_TEXTMAX); #else strcpy(buf, UPREFIX); #endif