diff options
author | deraadt <> | 1996-09-25 08:17:31 +0000 |
---|---|---|
committer | deraadt <> | 1996-09-25 08:17:31 +0000 |
commit | e1d97f672bb21109e95b3a91fd67865f61ec96ca (patch) | |
tree | ceb605cc4fe68d3cc7d91284f9a4342e44615920 /src/lib/libc/string/__strsignal.c | |
parent | 78ff40b0a2d20864f3aba0938b17ac74741977d8 (diff) | |
download | openbsd-e1d97f672bb21109e95b3a91fd67865f61ec96ca.tar.gz openbsd-e1d97f672bb21109e95b3a91fd67865f61ec96ca.tar.bz2 openbsd-e1d97f672bb21109e95b3a91fd67865f61ec96ca.zip |
nls buffers are NL_TEXTMAX long -- not a security hole; netbsd pr#2780, mike.long@analog.com
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 |