From 109849e204f91d8b04b0e57da87e45b461096b50 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Mon, 7 Jul 2014 15:34:00 +0000 Subject: [PATCH] Bugfix: strerror_r can return an error, and if it does, POSIX does not specify the content of the buffer --- src/netbase.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/netbase.cpp b/src/netbase.cpp index e24a0a195c1..40ae89957a7 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -1265,7 +1265,8 @@ std::string NetworkErrorString(int err) #ifdef STRERROR_R_CHAR_P /* GNU variant can return a pointer outside the passed buffer */ s = strerror_r(err, buf, sizeof(buf)); #else /* POSIX variant always returns message in buffer */ - (void) strerror_r(err, buf, sizeof(buf)); + if (strerror_r(err, buf, sizeof(buf))) + buf[0] = 0; #endif return strprintf("%s (%d)", s, err); }