summaryrefslogtreecommitdiff
path: root/lib/libc/signal/sig2str.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/signal/sig2str.c')
-rw-r--r--lib/libc/signal/sig2str.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/libc/signal/sig2str.c b/lib/libc/signal/sig2str.c
index 209cb4c3..2532d539 100644
--- a/lib/libc/signal/sig2str.c
+++ b/lib/libc/signal/sig2str.c
@@ -6,25 +6,28 @@
int sig2str(int signum, char *str)
{
if (signum >= SIGHUP && signum <= SIGSYS) {
- strcpy(str, __sys_signame[signum - SIGHUP]);
+ strlcpy(str, __sys_signame[signum - SIGHUP],
+ sizeof(__sys_signame[signum - SIGHUP]));
return 0;
}
if (signum == SIGRTMIN) {
- strcpy(str, "SIGRTMIN");
+ strlcpy(str, "SIGRTMIN", sizeof("SIGRTMIN"));
return 0;
}
if (signum == SIGRTMAX) {
- strcpy(str, "RTMAX");
+ strlcpy(str, "SIGRTMAX", sizeof("SIGRTMAX"));
return 0;
}
if (signum > SIGRTMIN && signum < SIGRTMAX) {
if (signum - SIGRTMIN <= SIGRTMAX - signum) {
- sprintf(str, "RTMIN+%d", signum - SIGRTMIN);
+ snprintf(str, sizeof("RTMIN+") + 1, "RTMIN+%d",
+ signum - SIGRTMIN);
} else {
- sprintf(str, "RTMAX-%d", SIGRTMAX - signum);
+ snprintf(str, sizeof("RTMAX-") + 1, "RTMAX-%d",
+ SIGRTMAX - signum);
}
return 0;
}