mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-30 13:58:34 +00:00
log: Don't modify global @errno in __print_on_level
The __print_on_level routine may modify global @errno variable which is inacceptable: this is logging routine which must be transparent to the rest of the program code. Thus save @errno in local @__errno variable and restore it on return. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Acked-by: Andrew Vagin <avagin@parallels.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
019ab4b795
commit
f76a57c29a
2
log.c
2
log.c
@ -155,6 +155,7 @@ unsigned int log_get_loglevel(void)
|
||||
static void __print_on_level(unsigned int loglevel, const char *format, va_list params)
|
||||
{
|
||||
int fd, size, ret, off = 0;
|
||||
int __errno = errno;
|
||||
|
||||
if (unlikely(loglevel == LOG_MSG)) {
|
||||
fd = STDOUT_FILENO;
|
||||
@ -176,6 +177,7 @@ static void __print_on_level(unsigned int loglevel, const char *format, va_list
|
||||
break;
|
||||
off += ret;
|
||||
}
|
||||
errno = __errno;
|
||||
}
|
||||
|
||||
void print_on_level(unsigned int loglevel, const char *format, ...)
|
||||
|
Loading…
x
Reference in New Issue
Block a user