summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/common/ssp.c
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2008-11-27 18:21:33 +0000
committerCarmelo Amoroso <carmelo.amoroso@st.com>2008-11-27 18:21:33 +0000
commit28c8634afdc1fa236679b49ab0d5a019379c6db1 (patch)
treefda9d6e124a32799b07247f8d38d0cc8f963cd4e /libc/sysdeps/linux/common/ssp.c
parenteb38b2d34c32ed3089e2bf8935219a57f84ce7b3 (diff)
downloaduClibc-alpine-28c8634afdc1fa236679b49ab0d5a019379c6db1.tar.bz2
uClibc-alpine-28c8634afdc1fa236679b49ab0d5a019379c6db1.tar.xz
Synch with trunk @ 24165
Step 17: libc_hidden_proto removal (almost all). and other minor changes (inline keyword, extra character)
Diffstat (limited to 'libc/sysdeps/linux/common/ssp.c')
-rw-r--r--libc/sysdeps/linux/common/ssp.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/libc/sysdeps/linux/common/ssp.c b/libc/sysdeps/linux/common/ssp.c
index d8088ef60..73d7113b8 100644
--- a/libc/sysdeps/linux/common/ssp.c
+++ b/libc/sysdeps/linux/common/ssp.c
@@ -29,21 +29,22 @@
#include <string.h>
#include <unistd.h>
#include <signal.h>
+#if defined __UCLIBC_HAS_SYSLOG__
#include <sys/syslog.h>
-/* Experimentally off - libc_hidden_proto(memset) */
-/* Experimentally off - libc_hidden_proto(strlen) */
-libc_hidden_proto(sigaction)
-libc_hidden_proto(sigfillset)
-libc_hidden_proto(sigdelset)
-libc_hidden_proto(sigprocmask)
-libc_hidden_proto(write)
-libc_hidden_proto(openlog)
-libc_hidden_proto(syslog)
-libc_hidden_proto(closelog)
-libc_hidden_proto(kill)
-libc_hidden_proto(getpid)
-libc_hidden_proto(_exit)
+/* libc_hidden_proto(openlog) */
+/* libc_hidden_proto(syslog) */
+/* libc_hidden_proto(closelog) */
+#endif
+
+/* libc_hidden_proto(sigaction) */
+/* libc_hidden_proto(sigfillset) */
+/* libc_hidden_proto(sigdelset) */
+/* libc_hidden_proto(sigprocmask) */
+/* libc_hidden_proto(write) */
+/* libc_hidden_proto(kill) */
+/* libc_hidden_proto(getpid) */
+/* libc_hidden_proto(_exit) */
static void block_signals(void)
{
@@ -63,15 +64,17 @@ static void block_signals(void)
sigaction(SSP_SIGTYPE, &sa, NULL);
}
-static void ssp_write(int fd, const char *msg1, const char *msg2, const char *msg3)
+static void ssp_write(int fd, const char *msg1, const char *msg2, const char *msg3) __cold
{
write(fd, msg1, strlen(msg1));
write(fd, msg2, strlen(msg2));
write(fd, msg3, strlen(msg3));
write(fd, "()\n", 3);
+#if defined __UCLIBC_HAS_SYSLOG__
openlog("ssp", LOG_CONS | LOG_PID, LOG_USER);
syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3);
closelog();
+#endif
}
static attribute_noreturn void terminate(void)
@@ -80,7 +83,7 @@ static attribute_noreturn void terminate(void)
_exit(127);
}
-void __stack_smash_handler(char func[], int damaged __attribute__ ((unused))) attribute_noreturn;
+void __stack_smash_handler(char func[], int damaged __attribute__ ((unused))) attribute_noreturn __cold;
void __stack_smash_handler(char func[], int damaged)
{
static const char message[] = ": stack smashing attack in function ";
@@ -94,7 +97,7 @@ void __stack_smash_handler(char func[], int damaged)
terminate();
}
-void __stack_chk_fail(void) attribute_noreturn;
+void __stack_chk_fail(void) attribute_noreturn __cold;
void __stack_chk_fail(void)
{
static const char msg1[] = "stack smashing detected: ";