summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Erik Rediger <badboy@archlinux.us>2017-01-23 17:03:14 +0100
committerGitHub <noreply@github.com>2017-01-23 17:03:14 +0100
commitc9b72f97f8252bf447e7421b9d929410593f60c1 (patch)
tree7787f0480b9a66359560728377a6cad624d531ae
parent33152ad163a21f568fb40eeeb88b79365886b4ea (diff)
parent25cd884f6b494a88bd491a8d9a50486e3f1e6751 (diff)
Merge pull request #499 from jinq0123/fixbug/redisSetErrorFromErrno
Fix __redisSetErrorFromErrno() can not get error string.
-rw-r--r--net.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net.c b/net.c
index 7d41209..024f645 100644
--- a/net.c
+++ b/net.c
@@ -65,12 +65,13 @@ static void redisContextCloseFd(redisContext *c) {
}
static void __redisSetErrorFromErrno(redisContext *c, int type, const char *prefix) {
+ int errorno = errno; /* snprintf() may change errno */
char buf[128] = { 0 };
size_t len = 0;
if (prefix != NULL)
len = snprintf(buf,sizeof(buf),"%s: ",prefix);
- __redis_strerror_r(errno, (char *)(buf + len), sizeof(buf) - len);
+ __redis_strerror_r(errorno, (char *)(buf + len), sizeof(buf) - len);
__redisSetError(c,type,buf);
}