diff options
author | Jin Qing <jinq0123@163.com> | 2016-12-30 23:13:02 +0800 |
---|---|---|
committer | Jin Qing <jinq0123@163.com> | 2016-12-30 23:13:02 +0800 |
commit | 25cd884f6b494a88bd491a8d9a50486e3f1e6751 (patch) | |
tree | 7787f0480b9a66359560728377a6cad624d531ae | |
parent | 33152ad163a21f568fb40eeeb88b79365886b4ea (diff) |
Fix __redisSetErrorFromErrno() can not get error string.
snprintf() may change errno.
-rw-r--r-- | net.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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); } |