Module Name:    src
Committed By:   christos
Date:           Thu Oct 11 17:09:56 UTC 2012

Modified Files:
        src/lib/libc/compat/gen: compat_syslog.c
        src/lib/libc/gen: syslog.c
        src/lib/libc/include: extern.h

Log Message:
take care of the signal safe syslog calls which are not exposed.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/lib/libc/compat/gen/compat_syslog.c
cvs rdiff -u -r1.52 -r1.53 src/lib/libc/gen/syslog.c
cvs rdiff -u -r1.20 -r1.21 src/lib/libc/include/extern.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/compat/gen/compat_syslog.c
diff -u src/lib/libc/compat/gen/compat_syslog.c:1.1 src/lib/libc/compat/gen/compat_syslog.c:1.2
--- src/lib/libc/compat/gen/compat_syslog.c:1.1	Wed Oct 10 18:52:26 2012
+++ src/lib/libc/compat/gen/compat_syslog.c	Thu Oct 11 13:09:55 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: compat_syslog.c,v 1.1 2012/10/10 22:52:26 christos Exp $	*/
+/*	$NetBSD: compat_syslog.c,v 1.2 2012/10/11 17:09:55 christos Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -39,6 +39,15 @@
 #include <sys/syslog.h>
 #include <compat/sys/syslog.h>
 
+void	syslog_ss(int, struct syslog_data60 *, const char *, ...)
+    __printflike(3, 4);
+void    vsyslog_ss(int, struct syslog_data60 *, const char *, va_list) 
+    __printflike(3, 0); 
+void	syslogp_ss(int, struct syslog_data60 *, const char *, const char *, 
+    const char *, ...) __printflike(5, 0);
+void	vsyslogp_ss(int, struct syslog_data60 *, const char *, const char *, 
+    const char *, va_list) __printflike(5, 0);
+
 #ifdef __weak_alias
 __weak_alias(closelog_r,_closelog_r)
 __weak_alias(openlog_r,_openlog_r)
@@ -47,6 +56,11 @@ __weak_alias(syslog_r,_syslog_r)
 __weak_alias(vsyslog_r,_vsyslog_r)
 __weak_alias(syslogp_r,_syslogp_r)
 __weak_alias(vsyslogp_r,_vsyslogp_r)
+
+__weak_alias(syslog_ss,_syslog_ss)
+__weak_alias(vsyslog_ss,_vsyslog_ss)
+__weak_alias(syslogp_ss,_syslogp_ss)
+__weak_alias(vsyslogp_ss,_vsyslogp_ss)
 #endif /* __weak_alias */
 
 __warn_references(closelog_r,
@@ -127,6 +141,7 @@ vsyslog_r(int pri, struct syslog_data60 
 	syslog_data_convert(&data, data60);
 	__vsyslog_r60(pri, &data, fmt, ap);
 }
+
 void
 syslogp_r(int pri, struct syslog_data60 *data60, const char *msgid,
     const char *sdfmt, const char *msgfmt, ...)
@@ -149,3 +164,42 @@ vsyslogp_r(int pri, struct syslog_data60
 
 	__vsyslogp_r60(pri, &data, msgid, sdfmt, msgfmt, ap);
 }
+
+/*
+ * These are semi-private
+ */
+#define LOG_SIGNAL_SAFE (int)0x80000000
+
+void
+syslog_ss(int pri, struct syslog_data60 *data, const char *fmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, fmt);
+	vsyslog_r(pri | LOG_SIGNAL_SAFE, data, fmt, ap);
+	va_end(ap);
+}
+
+void
+syslogp_ss(int pri, struct syslog_data60 *data, const char *msgid,
+    const char *sdfmt, const char *msgfmt, ...)
+{
+	va_list ap;
+
+	va_start(ap, msgfmt);
+	vsyslogp_r(pri | LOG_SIGNAL_SAFE, data, msgid, sdfmt, msgfmt, ap);
+	va_end(ap);
+}
+
+void
+vsyslog_ss(int pri, struct syslog_data60 *data, const char *fmt, va_list ap)
+{
+	vsyslog_r(pri | LOG_SIGNAL_SAFE, data, fmt, ap);
+}
+
+void
+vsyslogp_ss(int pri, struct syslog_data60 *data, const char *msgid,
+    const char *sdfmt, const char *msgfmt, va_list ap)
+{
+	vsyslogp_r(pri | LOG_SIGNAL_SAFE, data, msgid, sdfmt, msgfmt, ap);
+}

Index: src/lib/libc/gen/syslog.c
diff -u src/lib/libc/gen/syslog.c:1.52 src/lib/libc/gen/syslog.c:1.53
--- src/lib/libc/gen/syslog.c:1.52	Wed Oct 10 19:53:43 2012
+++ src/lib/libc/gen/syslog.c	Thu Oct 11 13:09:55 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: syslog.c,v 1.52 2012/10/10 23:53:43 christos Exp $	*/
+/*	$NetBSD: syslog.c,v 1.53 2012/10/11 17:09:55 christos Exp $	*/
 
 /*
  * Copyright (c) 1983, 1988, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)syslog.c	8.5 (Berkeley) 4/29/95";
 #else
-__RCSID("$NetBSD: syslog.c,v 1.52 2012/10/10 23:53:43 christos Exp $");
+__RCSID("$NetBSD: syslog.c,v 1.53 2012/10/11 17:09:55 christos Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -67,11 +67,6 @@ __weak_alias(syslog,_syslog)
 __weak_alias(vsyslog,_vsyslog)
 __weak_alias(syslogp,_syslogp)
 __weak_alias(vsyslogp,_vsyslogp)
-
-__weak_alias(syslog_ss,_syslog_ss)
-__weak_alias(vsyslog_ss,_vsyslog_ss)
-__weak_alias(syslogp_ss,_syslogp_ss)
-__weak_alias(vsyslogp_ss,_vsyslogp_ss)
 #endif
 
 static struct syslog_data sdata = SYSLOG_DATA_INIT;

Index: src/lib/libc/include/extern.h
diff -u src/lib/libc/include/extern.h:1.20 src/lib/libc/include/extern.h:1.21
--- src/lib/libc/include/extern.h:1.20	Tue Sep 11 22:00:53 2012
+++ src/lib/libc/include/extern.h	Thu Oct 11 13:09:56 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: extern.h,v 1.20 2012/09/12 02:00:53 manu Exp $	*/
+/*	$NetBSD: extern.h,v 1.21 2012/10/11 17:09:56 christos Exp $	*/
 
 /*
  * Copyright (c) 1997 Christos Zoulas.  All rights reserved.
@@ -49,21 +49,22 @@ char *__hldtoa(long double, const char *
 char *__ldtoa(long double *, int, int, int *, int *, char **);
 #endif
 
+#ifndef __LIBC12_SOURCE__
 struct syslog_data;
 void	syslog_ss(int, struct syslog_data *, const char *, ...)
-    __attribute__((__format__(__printf__,3,4)));
-void	vsyslog_ss(int, struct syslog_data *, const char *, va_list);
+    __RENAME(__syslog_ss60) __printflike(3, 4);
 void    vsyslog_ss(int, struct syslog_data *, const char *, va_list) 
-    __attribute__((__format__(__printf__,3,0))); 
+    __RENAME(__vsyslog_ss60) __printflike(3, 0); 
 void	syslogp_ss(int, struct syslog_data *, const char *, const char *, 
-    const char *, ...) __attribute__((__format__(__printf__,5,0))); 
+    const char *, ...) __RENAME(__syslogp_ss60) __printflike(5, 0);
 void	vsyslogp_ss(int, struct syslog_data *, const char *, const char *, 
-    const char *, va_list) __attribute__((__format__(__printf__,5,0))); 
+    const char *, va_list) __RENAME(__vsyslogp_ss60) __printflike(5, 0);
+#endif
 
 int	snprintf_ss(char * __restrict, size_t, const char * __restrict, ...)
-    __attribute__((__format__(__printf__, 3, 4)));
+    __printflike(3, 4);
 int	vsnprintf_ss(char * __restrict, size_t, const char * __restrict,
-    va_list) __attribute__((__format__(__printf__, 3, 0)));
+    va_list) __printflike(3, 0);
 
 void	_malloc_prefork(void);
 void	_malloc_postfork(void);

Reply via email to