aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/route6d/route6d.c
diff options
context:
space:
mode:
authorHajimu UMEMOTO <ume@FreeBSD.org>2003-08-17 18:35:56 +0000
committerHajimu UMEMOTO <ume@FreeBSD.org>2003-08-17 18:35:56 +0000
commitb18ac9358cdd7d18897fb7bc73610f6fd6cb1853 (patch)
tree83ba0411dd5ca0ce6f560eb4fd18b61f0bbab366 /usr.sbin/route6d/route6d.c
parent4776b349ce197799aeecc83dd7d22c15ff8ce426 (diff)
downloadsrc-b18ac9358cdd7d18897fb7bc73610f6fd6cb1853.tar.gz
src-b18ac9358cdd7d18897fb7bc73610f6fd6cb1853.zip
- don't print strerror() if errno == 0 on fatal().
- va_start/end audit. - can't use vfprintf() twice. need va_start/end pair every time. Obtained from: KAME MFC after: 1 week
Notes
Notes: svn path=/head/; revision=119043
Diffstat (limited to 'usr.sbin/route6d/route6d.c')
-rw-r--r--usr.sbin/route6d/route6d.c36
1 files changed, 26 insertions, 10 deletions
diff --git a/usr.sbin/route6d/route6d.c b/usr.sbin/route6d/route6d.c
index 6702b646f36c..e2030b727ac1 100644
--- a/usr.sbin/route6d/route6d.c
+++ b/usr.sbin/route6d/route6d.c
@@ -3335,10 +3335,13 @@ fatal(fmt, va_alist)
va_start(ap);
#endif
vsnprintf(buf, sizeof(buf), fmt, ap);
+ va_end(ap);
perror(buf);
- syslog(LOG_ERR, "%s: %s", buf, strerror(errno));
+ if (errno)
+ syslog(LOG_ERR, "%s: %s", buf, strerror(errno));
+ else
+ syslog(LOG_ERR, "%s", buf);
rtdexit();
- va_end(ap);
}
void
@@ -3353,22 +3356,28 @@ tracet(level, fmt, va_alist)
{
va_list ap;
+ if (level <= dflag) {
#ifdef __STDC__
- va_start(ap, fmt);
+ va_start(ap, fmt);
#else
- va_start(ap);
+ va_start(ap);
#endif
- if (level <= dflag) {
fprintf(stderr, "%s: ", hms());
vfprintf(stderr, fmt, ap);
+ va_end(ap);
}
if (dflag) {
+#ifdef __STDC__
+ va_start(ap, fmt);
+#else
+ va_start(ap);
+#endif
if (level > 0)
vsyslog(LOG_DEBUG, fmt, ap);
else
vsyslog(LOG_WARNING, fmt, ap);
+ va_end(ap);
}
- va_end(ap);
}
void
@@ -3383,20 +3392,27 @@ trace(level, fmt, va_alist)
{
va_list ap;
+ if (level <= dflag) {
#ifdef __STDC__
- va_start(ap, fmt);
+ va_start(ap, fmt);
#else
- va_start(ap);
+ va_start(ap);
#endif
- if (level <= dflag)
vfprintf(stderr, fmt, ap);
+ va_end(ap);
+ }
if (dflag) {
+#ifdef __STDC__
+ va_start(ap, fmt);
+#else
+ va_start(ap);
+#endif
if (level > 0)
vsyslog(LOG_DEBUG, fmt, ap);
else
vsyslog(LOG_WARNING, fmt, ap);
+ va_end(ap);
}
- va_end(ap);
}
unsigned int