aboutsummaryrefslogtreecommitdiffstats
path: root/main/freeradius/fix-strerror_r.patch
blob: 4efbc455a7c51052786d57768a7222cf343ec5d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From b3cf5084f2f7592c6f2821f55f9bf55ea223f569 Mon Sep 17 00:00:00 2001
From: Arran Cudbard-Bell <a.cudbardb@freeradius.org>
Date: Thu, 10 Sep 2015 09:46:15 +0100
Subject: [PATCH] Check we're building with GLIBC before assuming the GNU
 version of strerror_r is present Closes #1222

---
 src/lib/log.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/log.c b/src/lib/log.c
index 8f55061..49b3103 100644
--- a/src/lib/log.c
+++ b/src/lib/log.c
@@ -169,8 +169,8 @@ char const *fr_syserror(int num)
 	/*
 	 *	XSI-Compliant version
 	 */
-#if !defined(HAVE_FEATURES_H) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 500) && ! _GNU_SOURCE)
-	if ((ret = strerror_r(num, buffer, (size_t) FR_STRERROR_BUFSIZE) != 0)) {
+#if !defined(HAVE_FEATURES_H) || !defined(__GLIBC__) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 500) && ! _GNU_SOURCE)
+	if ((ret = strerror_r(num, buffer, (size_t)FR_STRERROR_BUFSIZE) != 0)) {
 #  ifndef NDEBUG
 		fprintf(stderr, "strerror_r() failed to write error for errno %i to buffer %p (%zu bytes), "
 			"returned %i: %s\n", num, buffer, (size_t) FR_STRERROR_BUFSIZE, ret, strerror(ret));
@@ -187,7 +187,7 @@ char const *fr_syserror(int num)
 #else
 	{
 		char const *p;
-		p = strerror_r(num, buffer, (size_t) FR_STRERROR_BUFSIZE);
+		p = strerror_r(num, buffer, (size_t)FR_STRERROR_BUFSIZE);
 		if (!p) {
 #  ifndef NDEBUG
 			fprintf(stderr, "strerror_r() failed to write error for errno %i to buffer %p "