aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2023-03-10 13:24:19 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2023-03-10 13:25:16 +0000
commit7c21545c46e1290e66fd9e9300165b4a381161b9 (patch)
tree8b208bd4d9a8c3c41c6ea2f7a170c3aed8edd831
parenta6dfd2015c202f3424eb58846d8575a877728881 (diff)
downloadsrc-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.c4
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;
}
/*