diff options
| author | 1996-09-25 08:17:30 +0000 | |
|---|---|---|
| committer | 1996-09-25 08:17:30 +0000 | |
| commit | 6cecd9c01f210c7f5e80ab77c288c4acc0503e50 (patch) | |
| tree | 1f63907a68558d469f73e23483987942f413906b /lib/libc/string/__strsignal.c | |
| parent | crunchgen needs to explictly use -f filename when building objects. (diff) | |
| download | wireguard-openbsd-6cecd9c01f210c7f5e80ab77c288c4acc0503e50.tar.xz wireguard-openbsd-6cecd9c01f210c7f5e80ab77c288c4acc0503e50.zip | |
nls buffers are NL_TEXTMAX long -- not a security hole; netbsd pr#2780, mike.long@analog.com
Diffstat (limited to 'lib/libc/string/__strsignal.c')
| -rw-r--r-- | lib/libc/string/__strsignal.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/libc/string/__strsignal.c b/lib/libc/string/__strsignal.c index 5a424bfde28..53c9e59e59f 100644 --- a/lib/libc/string/__strsignal.c +++ b/lib/libc/string/__strsignal.c @@ -32,7 +32,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: __strsignal.c,v 1.3 1996/09/16 05:43:39 tholo Exp $"; +static char *rcsid = "$OpenBSD: __strsignal.c,v 1.4 1996/09/25 08:17:31 deraadt Exp $"; #endif /* LIBC_SCCS and not lint */ #ifdef NLS @@ -79,18 +79,20 @@ __strsignal(num, buf) signum = num; /* convert to unsigned */ if (signum < NSIG) { #ifdef NLS - strcpy(buf, catgets(catd, 2, signum, - (char *)sys_siglist[signum])); + strncpy(buf, catgets(catd, 2, signum, + (char *)sys_siglist[signum]), NL_TEXTMAX-1); + buf[NL_TEXTMAX-1] = '\0'; #else return((char *)sys_siglist[signum]); #endif } else { #ifdef NLS - strcpy(buf, catgets(catd, 1, 0xffff, UPREFIX)); + strncpy(buf, catgets(catd, 1, 0xffff, UPREFIX), NL_TEXTMAX-1); + buf[NL_TEXTMAX-1] = '\0'; #else strcpy(buf, UPREFIX); #endif - strcat(buf, itoa(signum)); + strncat(buf, itoa(signum), NL_TEXTMAX-strlen(buf)-1); } #ifdef NLS |
