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:
parent
9f0aba7d25
commit
2fc7038ca4
|
@ -69,6 +69,7 @@ openpam_log(int level, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
int priority;
|
int priority;
|
||||||
|
int serrno;
|
||||||
|
|
||||||
switch (level) {
|
switch (level) {
|
||||||
case PAM_LOG_LIBDEBUG:
|
case PAM_LOG_LIBDEBUG:
|
||||||
|
@ -88,9 +89,11 @@ openpam_log(int level, const char *fmt, ...)
|
||||||
priority = LOG_ERR;
|
priority = LOG_ERR;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
serrno = errno;
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
vsyslog(priority, fmt, ap);
|
vsyslog(priority, fmt, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
errno = serrno;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
@ -121,8 +124,8 @@ _openpam_log(int level, const char *func, const char *fmt, ...)
|
||||||
priority = LOG_ERR;
|
priority = LOG_ERR;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
va_start(ap, fmt);
|
|
||||||
serrno = errno;
|
serrno = errno;
|
||||||
|
va_start(ap, fmt);
|
||||||
if (asprintf(&format, "in %s(): %s", func, fmt) > 0) {
|
if (asprintf(&format, "in %s(): %s", func, fmt) > 0) {
|
||||||
errno = serrno;
|
errno = serrno;
|
||||||
vsyslog(priority, format, ap);
|
vsyslog(priority, format, ap);
|
||||||
|
@ -132,6 +135,7 @@ _openpam_log(int level, const char *func, const char *fmt, ...)
|
||||||
vsyslog(priority, fmt, ap);
|
vsyslog(priority, fmt, ap);
|
||||||
}
|
}
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
|
errno = serrno;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue