summaryrefslogtreecommitdiffstats
path: root/testsuite/syscalls01
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-10-09 14:34:13 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-10-09 14:56:29 +0200
commitd5eac12255b03d0da1c7509ca4b61c7ab7fdf290 (patch)
treed2e9215edd7646935ebe9578c89661cb20cbbb78 /testsuite/syscalls01
parenttestsuite: Fix lo0 ifconfig error (diff)
downloadrtems-libbsd-d5eac12255b03d0da1c7509ca4b61c7ab7fdf290.tar.bz2
SYSLOG(3): Replace implementation
Avoid potential buffer overflows on the stack. Expand the %m in the format string.
Diffstat (limited to 'testsuite/syscalls01')
-rw-r--r--testsuite/syscalls01/test_main.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/testsuite/syscalls01/test_main.c b/testsuite/syscalls01/test_main.c
index 3f33e2b3..75691d35 100644
--- a/testsuite/syscalls01/test_main.c
+++ b/testsuite/syscalls01/test_main.c
@@ -50,6 +50,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <syslog.h>
#define RTEMS_BSD_PROGRAM_NO_EXIT_WRAP
#define RTEMS_BSD_PROGRAM_NO_PRINTF_WRAP
@@ -1692,6 +1693,28 @@ test_err(void)
}
static void
+test_syslog(void)
+{
+ puts("test syslog");
+
+ errno = 0;
+ syslog(LOG_ERR, "%m");
+ syslog(LOG_ERR, "b%m");
+ syslog(LOG_ERR, "%me");
+ errno = ENXIO;
+ syslog(LOG_ERR, "<%m><%m><%m>");
+ syslog(LOG_INFO, "%m%m%m%m%m%m%m%m%m%m%m%m%m%m");
+ syslog(LOG_EMERG, "emerg");
+ syslog(LOG_ALERT, "alert");
+ syslog(LOG_CRIT, "crit");
+ syslog(LOG_ERR, "err");
+ syslog(LOG_WARNING, "warning");
+ syslog(LOG_NOTICE, "notice");
+ syslog(LOG_INFO, "info");
+ syslog(LOG_DEBUG, "debug");
+}
+
+static void
test_main(void)
{
/* Must be first test to ensure resource checks work */
@@ -1720,6 +1743,7 @@ test_main(void)
test_bsd_program();
test_warn();
test_err();
+ test_syslog();
exit(0);
}