commit - 3609036d703aa8a2a209525688c837c64bad8978
commit + a907e013f1430ac749e09ed5e32d88720c61daef
blob - b43a6eb9382c41452337369419db3b43037fa85f
blob + 5d7c9bbccbac759aa3aed97e7d2ac3675d3fb864
--- log.c
+++ log.c
-/* $OpenBSD: log.c,v 1.32 2016/10/12 11:57:31 reyk Exp $ */
+/* $OpenBSD: log.c,v 1.33 2017/01/08 20:31:03 reyk Exp $ */
/*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
vlog(int pri, const char *fmt, va_list ap)
{
char *nfmt;
+ int saved_errno = errno;
if (debug) {
/* best effort in out of mem situations */
fflush(stderr);
} else
vsyslog(pri, fmt, ap);
+
+ errno = saved_errno;
}
-
void
log_warn(const char *emsg, ...)
{
}
va_end(ap);
}
+
+ errno = saved_errno;
}
void
}
static void
-vfatal(const char *emsg, va_list ap)
+vfatalc(int code, const char *emsg, va_list ap)
{
static char s[BUFSIZ];
const char *sep;
- int saved_errno = errno;
if (emsg != NULL) {
(void)vsnprintf(s, sizeof(s), emsg, ap);
s[0] = '\0';
sep = "";
}
- if (saved_errno)
+ if (code)
logit(LOG_CRIT, "%s: %s%s%s",
- log_procname, s, sep, strerror(saved_errno));
+ log_procname, s, sep, strerror(code));
else
logit(LOG_CRIT, "%s%s%s", log_procname, sep, s);
}
va_list ap;
va_start(ap, emsg);
- vfatal(emsg, ap);
+ vfatalc(errno, emsg, ap);
va_end(ap);
exit(1);
}
{
va_list ap;
- errno = 0;
va_start(ap, emsg);
- vfatal(emsg, ap);
+ vfatalc(0, emsg, ap);
va_end(ap);
exit(1);
}