tools/xenconsoled: Preserve errno while rotating logfile handles
authorAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 16 May 2017 13:57:27 +0000 (14:57 +0100)
committerWei Liu <wei.liu2@citrix.com>
Wed, 17 May 2017 16:15:07 +0000 (17:15 +0100)
The logic to optionally exit after a poll() error relies on errno, but
handle_log_reload() does not preserve it.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Release-acked-by: Julien Grall <julien.grall@arm.com>
tools/console/daemon/io.c

index 7e6a886d92b25ad884f4e7a520251b18e6f3cbc6..7e474bb038ee459982f53b8b629787125bc673f9 100644 (file)
@@ -1117,8 +1117,12 @@ void handle_io(void)
                ret = poll(fds, nr_fds, next_timeout ? poll_timeout : -1);
 
                if (log_reload) {
+                       int saved_errno = errno;
+
                        handle_log_reload();
                        log_reload = 0;
+
+                       errno = saved_errno;
                }
 
                /* Abort if poll failed, except for EINTR cases