diff options
author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2023-03-10 13:24:19 +0000 |
---|---|---|
committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2023-03-10 13:25:16 +0000 |
commit | 7c21545c46e1290e66fd9e9300165b4a381161b9 (patch) | |
tree | 8b208bd4d9a8c3c41c6ea2f7a170c3aed8edd831 | |
parent | a6dfd2015c202f3424eb58846d8575a877728881 (diff) | |
download | src-7c21545c46e1290e66fd9e9300165b4a381161b9.tar.gz src-7c21545c46e1290e66fd9e9300165b4a381161b9.zip |
tftpd: Ensure that tftp_log() preserves errno.
Sponsored by: Klara, Inc.
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D38956
-rw-r--r-- | libexec/tftpd/tftp-utils.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libexec/tftpd/tftp-utils.c b/libexec/tftpd/tftp-utils.c index 322b5ad9ae62..1647ad8be1c9 100644 --- a/libexec/tftpd/tftp-utils.c +++ b/libexec/tftpd/tftp-utils.c @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include <netinet/in.h> #include <arpa/tftp.h> +#include <errno.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> @@ -148,8 +149,10 @@ void tftp_log(int priority, const char *message, ...) { va_list ap; + int serrno; char *s; + serrno = errno; va_start(ap, message); if (_tftp_logtostdout == 0) { vasprintf(&s, message, ap); @@ -159,6 +162,7 @@ tftp_log(int priority, const char *message, ...) printf("\n"); } va_end(ap); + errno = serrno; } /* |