From 29c21e490099c35fb3e35c2c493b6b480b211e72 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 30 Jul 2005 06:00:43 +0000 Subject: * misc/bits/syslog.h: New file. * misc/sys/syslog.h: Include for fortification. * misc/Makefile (headers): Add bits/syslog.h. * include/sys/syslog.h: Add __vsyslog_chk prototype and hidden_proto. * sysdeps/generic/syslog.c: Change vsyslog function to __vsyslog_chk. Call __vfprintf_chk if necessary. Make vsyslog a wrapper. Add __syslog_chk. * misc/Versions: Export __syslog_chk and __vsyslog_chk. * nis/nis_xdr.c: Help gcc to avoid generating unnecessary wrapper functions. --- misc/Makefile | 2 +- misc/Versions | 3 +++ misc/sys/syslog.h | 10 ++++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'misc') diff --git a/misc/Makefile b/misc/Makefile index cd5b64e7ab..7c0b64818d 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -29,7 +29,7 @@ headers := sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \ sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \ sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \ sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \ - regexp.h bits/select.h bits/mman.h sys/xattr.h + regexp.h bits/select.h bits/mman.h sys/xattr.h bits/syslog.h routines := brk sbrk sstk ioctl \ readv writev \ diff --git a/misc/Versions b/misc/Versions index 13b38eec72..4c3aafad6e 100644 --- a/misc/Versions +++ b/misc/Versions @@ -130,4 +130,7 @@ libc { GLIBC_2.3.3 { remap_file_pages; } + GLIBC_2.4 { + __syslog_chk; __vsyslog_chk; + } } diff --git a/misc/sys/syslog.h b/misc/sys/syslog.h index 5007525d85..9de7570d8a 100644 --- a/misc/sys/syslog.h +++ b/misc/sys/syslog.h @@ -188,7 +188,7 @@ extern int setlogmask (int __mask) __THROW; This function is a possible cancellation point and therefore not marked with __THROW. */ extern void syslog (int __pri, __const char *__fmt, ...) - __attribute__ ((__format__(__printf__, 2, 3))); + __attribute__ ((__format__ (__printf__, 2, 3))); #ifdef __USE_BSD /* Generate a log message using FMT and using arguments pointed to by AP. @@ -198,7 +198,13 @@ extern void syslog (int __pri, __const char *__fmt, ...) or due to the implementation it is a cancellation point and therefore not marked with __THROW. */ extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap) - __attribute__ ((__format__(__printf__, 2, 0))); + __attribute__ ((__format__ (__printf__, 2, 0))); +#endif + + +/* Define some macros helping to catch buffer overflows. */ +#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus +# include #endif __END_DECLS -- cgit v1.2.3