]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
tools/xenstore: let tdb_logger() preserve errno
authorJuergen Gross <jgross@suse.com>
Wed, 14 Dec 2022 11:01:47 +0000 (12:01 +0100)
committerJan Beulich <jbeulich@suse.com>
Wed, 14 Dec 2022 11:01:47 +0000 (12:01 +0100)
tdb_logger() is called by TDB for logging errors. As errno is checked
often after doing the logging, tdb_logger() should preserve errno.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
tools/xenstore/xenstored_core.c

index 476d5c6d51bdcaee0928d2265ac7ddd4ab55fe78..4cd54c8b5a51e568de86cedb4c40e58510a572f2 100644 (file)
@@ -2347,6 +2347,7 @@ static void tdb_logger(TDB_CONTEXT *tdb, int level, const char * fmt, ...)
 {
        va_list ap;
        char *s;
+       int saved_errno = errno;
 
        va_start(ap, fmt);
        s = talloc_vasprintf(NULL, fmt, ap);
@@ -2362,6 +2363,8 @@ static void tdb_logger(TDB_CONTEXT *tdb, int level, const char * fmt, ...)
                trace("talloc failure during logging\n");
                syslog(LOG_ERR, "talloc failure during logging\n");
        }
+
+       errno = saved_errno;
 }
 
 void setup_structure(bool live_update)