From c42f6f0997d5399a9b212803f583a0c22983fbc5 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Fri, 18 Aug 2023 14:59:29 +0200 Subject: [PATCH] daemon-helper: use _nm_strerror_r() to avoid non-thread-safe strerror() Yes, there probably are not multiple threads here. It's a matter of principle to not use smelly functions. Also, copy the "errno" value we want to print, before calling various functions. --- src/nm-daemon-helper/nm-daemon-helper.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/nm-daemon-helper/nm-daemon-helper.c b/src/nm-daemon-helper/nm-daemon-helper.c index a447d63cfe..810ea5fa94 100644 --- a/src/nm-daemon-helper/nm-daemon-helper.c +++ b/src/nm-daemon-helper/nm-daemon-helper.c @@ -94,12 +94,15 @@ cmd_resolve_address(void) NI_NAMEREQD); if (ret != 0) { if (ret == EAI_SYSTEM) { + int errsv = errno; + char buf[1024]; + fprintf(stderr, "getnameinfo() failed: %d (%s), system error: %d (%s)\n", ret, gai_strerror(ret), - errno, - strerror(errno)); + errsv, + _nm_strerror_r(errsv, buf, sizeof(buf))); } else { fprintf(stderr, "getnameinfo() failed: %d (%s)\n", ret, gai_strerror(ret)); }