diff options
Diffstat (limited to 'src/lib/libc/string/__strsignal.c')
| -rw-r--r-- | src/lib/libc/string/__strsignal.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/libc/string/__strsignal.c b/src/lib/libc/string/__strsignal.c index 5a424bfde2..53c9e59e59 100644 --- a/src/lib/libc/string/__strsignal.c +++ b/src/lib/libc/string/__strsignal.c | |||
| @@ -32,7 +32,7 @@ | |||
| 32 | */ | 32 | */ |
| 33 | 33 | ||
| 34 | #if defined(LIBC_SCCS) && !defined(lint) | 34 | #if defined(LIBC_SCCS) && !defined(lint) |
| 35 | static char *rcsid = "$OpenBSD: __strsignal.c,v 1.3 1996/09/16 05:43:39 tholo Exp $"; | 35 | static char *rcsid = "$OpenBSD: __strsignal.c,v 1.4 1996/09/25 08:17:31 deraadt Exp $"; |
| 36 | #endif /* LIBC_SCCS and not lint */ | 36 | #endif /* LIBC_SCCS and not lint */ |
| 37 | 37 | ||
| 38 | #ifdef NLS | 38 | #ifdef NLS |
| @@ -79,18 +79,20 @@ __strsignal(num, buf) | |||
| 79 | signum = num; /* convert to unsigned */ | 79 | signum = num; /* convert to unsigned */ |
| 80 | if (signum < NSIG) { | 80 | if (signum < NSIG) { |
| 81 | #ifdef NLS | 81 | #ifdef NLS |
| 82 | strcpy(buf, catgets(catd, 2, signum, | 82 | strncpy(buf, catgets(catd, 2, signum, |
| 83 | (char *)sys_siglist[signum])); | 83 | (char *)sys_siglist[signum]), NL_TEXTMAX-1); |
| 84 | buf[NL_TEXTMAX-1] = '\0'; | ||
| 84 | #else | 85 | #else |
| 85 | return((char *)sys_siglist[signum]); | 86 | return((char *)sys_siglist[signum]); |
| 86 | #endif | 87 | #endif |
| 87 | } else { | 88 | } else { |
| 88 | #ifdef NLS | 89 | #ifdef NLS |
| 89 | strcpy(buf, catgets(catd, 1, 0xffff, UPREFIX)); | 90 | strncpy(buf, catgets(catd, 1, 0xffff, UPREFIX), NL_TEXTMAX-1); |
| 91 | buf[NL_TEXTMAX-1] = '\0'; | ||
| 90 | #else | 92 | #else |
| 91 | strcpy(buf, UPREFIX); | 93 | strcpy(buf, UPREFIX); |
| 92 | #endif | 94 | #endif |
| 93 | strcat(buf, itoa(signum)); | 95 | strncat(buf, itoa(signum), NL_TEXTMAX-strlen(buf)-1); |
| 94 | } | 96 | } |
| 95 | 97 | ||
| 96 | #ifdef NLS | 98 | #ifdef NLS |
