Avoid clobbering errno in warning().
This commit is contained in:
@@ -183,6 +183,7 @@ static void
|
||||
warning(const char *errstr, const char *fmt, va_list ap)
|
||||
{
|
||||
int cookie;
|
||||
const int saved_errno = errno;
|
||||
|
||||
/* Set user locale if setter was specified. */
|
||||
if (sudo_warn_setlocale != NULL)
|
||||
@@ -246,6 +247,9 @@ warning(const char *errstr, const char *fmt, va_list ap)
|
||||
/* Restore old locale as needed. */
|
||||
if (sudo_warn_setlocale != NULL)
|
||||
sudo_warn_setlocale(true, &cookie);
|
||||
|
||||
/* Do not clobber errno. */
|
||||
errno = saved_errno;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user