mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-08 18:30:18 +00:00
* misc/bits/syslog.h: New file.
* misc/sys/syslog.h: Include <bits/syslog.h> 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.
This commit is contained in:
parent
155c581323
commit
29c21e4900
14
ChangeLog
14
ChangeLog
@ -1,10 +1,22 @@
|
|||||||
|
2005-07-29 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* misc/bits/syslog.h: New file.
|
||||||
|
* misc/sys/syslog.h: Include <bits/syslog.h> 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.
|
||||||
|
|
||||||
2005-07-28 Thomas Schwinge <schwinge@nic-nac-project.de>
|
2005-07-28 Thomas Schwinge <schwinge@nic-nac-project.de>
|
||||||
|
|
||||||
* misc/error.c [_LIBC]: Include <stdbool.h> and <stdint.h>.
|
* misc/error.c [_LIBC]: Include <stdbool.h> and <stdint.h>.
|
||||||
|
|
||||||
2005-07-28 Ulrich Drepper <drepper@redhat.com>
|
2005-07-28 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* nis/nis_xdr.c: Help gcc to generate unnecessary wrapper functions.
|
* nis/nis_xdr.c: Help gcc to avoid generating unnecessary wrapper
|
||||||
|
functions.
|
||||||
|
|
||||||
2005-07-28 Jakub Jelinek <jakub@redhat.com>
|
2005-07-28 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
@ -2,3 +2,8 @@
|
|||||||
|
|
||||||
libc_hidden_proto (syslog)
|
libc_hidden_proto (syslog)
|
||||||
libc_hidden_proto (vsyslog)
|
libc_hidden_proto (vsyslog)
|
||||||
|
|
||||||
|
extern void __vsyslog_chk (int __pri, int __flag, __const char *__fmt,
|
||||||
|
__gnuc_va_list __ap)
|
||||||
|
__attribute__ ((__format__ (__printf__, 3, 0)));
|
||||||
|
libc_hidden_proto (__vsyslog_chk)
|
||||||
|
@ -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/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/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 \
|
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 \
|
routines := brk sbrk sstk ioctl \
|
||||||
readv writev \
|
readv writev \
|
||||||
|
@ -130,4 +130,7 @@ libc {
|
|||||||
GLIBC_2.3.3 {
|
GLIBC_2.3.3 {
|
||||||
remap_file_pages;
|
remap_file_pages;
|
||||||
}
|
}
|
||||||
|
GLIBC_2.4 {
|
||||||
|
__syslog_chk; __vsyslog_chk;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ extern int setlogmask (int __mask) __THROW;
|
|||||||
This function is a possible cancellation point and therefore not
|
This function is a possible cancellation point and therefore not
|
||||||
marked with __THROW. */
|
marked with __THROW. */
|
||||||
extern void syslog (int __pri, __const char *__fmt, ...)
|
extern void syslog (int __pri, __const char *__fmt, ...)
|
||||||
__attribute__ ((__format__(__printf__, 2, 3)));
|
__attribute__ ((__format__ (__printf__, 2, 3)));
|
||||||
|
|
||||||
#ifdef __USE_BSD
|
#ifdef __USE_BSD
|
||||||
/* Generate a log message using FMT and using arguments pointed to by AP.
|
/* 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
|
or due to the implementation it is a cancellation point and
|
||||||
therefore not marked with __THROW. */
|
therefore not marked with __THROW. */
|
||||||
extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
|
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 <bits/syslog.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
@ -108,32 +108,28 @@ cancel_handler (void *ptr)
|
|||||||
* print message on log file; output is intended for syslogd(8).
|
* print message on log file; output is intended for syslogd(8).
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
#if __STDC__
|
|
||||||
syslog(int pri, const char *fmt, ...)
|
syslog(int pri, const char *fmt, ...)
|
||||||
#else
|
|
||||||
syslog(pri, fmt, va_alist)
|
|
||||||
int pri;
|
|
||||||
char *fmt;
|
|
||||||
va_dcl
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
#if __STDC__
|
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
#else
|
__vsyslog_chk(pri, -1, fmt, ap);
|
||||||
va_start(ap);
|
|
||||||
#endif
|
|
||||||
vsyslog(pri, fmt, ap);
|
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
libc_hidden_def (syslog)
|
libc_hidden_def (syslog)
|
||||||
|
|
||||||
void
|
void
|
||||||
vsyslog(pri, fmt, ap)
|
__syslog_chk(int pri, int flag, const char *fmt, ...)
|
||||||
int pri;
|
{
|
||||||
register const char *fmt;
|
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
|
va_start(ap, fmt);
|
||||||
|
__vsyslog_chk(pri, flag, fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
__vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
struct tm now_tm;
|
struct tm now_tm;
|
||||||
time_t now;
|
time_t now;
|
||||||
@ -218,7 +214,10 @@ vsyslog(pri, fmt, ap)
|
|||||||
|
|
||||||
/* We have the header. Print the user's format into the
|
/* We have the header. Print the user's format into the
|
||||||
buffer. */
|
buffer. */
|
||||||
vfprintf (f, fmt, ap);
|
if (flag == -1)
|
||||||
|
vfprintf (f, fmt, ap);
|
||||||
|
else
|
||||||
|
__vfprintf_chk (f, flag, fmt, ap);
|
||||||
|
|
||||||
/* Close the memory stream; this will finalize the data
|
/* Close the memory stream; this will finalize the data
|
||||||
into a malloc'd buffer in BUF. */
|
into a malloc'd buffer in BUF. */
|
||||||
@ -315,6 +314,16 @@ vsyslog(pri, fmt, ap)
|
|||||||
if (buf != failbuf)
|
if (buf != failbuf)
|
||||||
free (buf);
|
free (buf);
|
||||||
}
|
}
|
||||||
|
libc_hidden_def (__vsyslog_chk)
|
||||||
|
|
||||||
|
void
|
||||||
|
vsyslog(pri, fmt, ap)
|
||||||
|
int pri;
|
||||||
|
register const char *fmt;
|
||||||
|
va_list ap;
|
||||||
|
{
|
||||||
|
__vsyslog_chk (pri, -1, fmt, ap);
|
||||||
|
}
|
||||||
libc_hidden_def (vsyslog)
|
libc_hidden_def (vsyslog)
|
||||||
|
|
||||||
static struct sockaddr SyslogAddr; /* AF_UNIX address of local logger */
|
static struct sockaddr SyslogAddr; /* AF_UNIX address of local logger */
|
||||||
|
Loading…
Reference in New Issue
Block a user