[klibc] [PATCH 6/7] strsignal(): Check snprintf() return value
maximilian attems
max at stro.at
Tue Jul 5 11:06:31 PDT 2011
return NULL if snprintf() call fails.
strsignal(3) manpage seems wrong on that account.
Signed-off-by: maximilian attems <max at stro.at>
---
usr/klibc/strsignal.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/usr/klibc/strsignal.c b/usr/klibc/strsignal.c
index e345e9c..b89b8d0 100644
--- a/usr/klibc/strsignal.c
+++ b/usr/klibc/strsignal.c
@@ -9,18 +9,23 @@
char *strsignal(int sig)
{
static char buf[64];
+ int len;
if ((unsigned)sig < _NSIG && sys_siglist[sig])
return (char *)sys_siglist[sig];
#ifdef SIGRTMIN
if (sig >= SIGRTMIN && sig <= SIGRTMAX) {
- snprintf(buf, sizeof buf, "Real-time signal %d",
+ len = snprintf(buf, sizeof buf, "Real-time signal %d",
sig - SIGRTMIN);
+ if (len >= sizeof buf)
+ return NULL;
return buf;
}
#endif
- snprintf(buf, sizeof buf, "Signal %d", sig);
+ len = snprintf(buf, sizeof buf, "Signal %d", sig);
+ if (len >= sizeof buf)
+ return NULL;
return buf;
}
--
1.7.5.4
More information about the klibc
mailing list