summaryrefslogtreecommitdiffstats
path: root/lib/libc/string/__strsignal.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/string/__strsignal.c')
-rw-r--r--lib/libc/string/__strsignal.c12
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