Always restore errno before returning from openpam_log().

git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@681 185d5e19-27fe-0310-9dcf-9bff6b9f3609
This commit is contained in:
Dag-Erling Smørgrav 2013-04-14 14:36:05 +00:00
parent 9f0aba7d25
commit 2fc7038ca4
1 changed files with 5 additions and 1 deletions

View File

@ -69,6 +69,7 @@ openpam_log(int level, const char *fmt, ...)
{
va_list ap;
int priority;
int serrno;
switch (level) {
case PAM_LOG_LIBDEBUG:
@ -88,9 +89,11 @@ openpam_log(int level, const char *fmt, ...)
priority = LOG_ERR;
break;
}
serrno = errno;
va_start(ap, fmt);
vsyslog(priority, fmt, ap);
va_end(ap);
errno = serrno;
}
#else
@ -121,8 +124,8 @@ _openpam_log(int level, const char *func, const char *fmt, ...)
priority = LOG_ERR;
break;
}
va_start(ap, fmt);
serrno = errno;
va_start(ap, fmt);
if (asprintf(&format, "in %s(): %s", func, fmt) > 0) {
errno = serrno;
vsyslog(priority, format, ap);
@ -132,6 +135,7 @@ _openpam_log(int level, const char *func, const char *fmt, ...)
vsyslog(priority, fmt, ap);
}
va_end(ap);
errno = serrno;
}
#endif