Fix __redisSetErrorFromErrno() can not get error string.
snprintf() may change errno.
This commit is contained in:
parent
33152ad163
commit
25cd884f6b
3
net.c
3
net.c
@ -65,12 +65,13 @@ static void redisContextCloseFd(redisContext *c) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void __redisSetErrorFromErrno(redisContext *c, int type, const char *prefix) {
|
static void __redisSetErrorFromErrno(redisContext *c, int type, const char *prefix) {
|
||||||
|
int errorno = errno; /* snprintf() may change errno */
|
||||||
char buf[128] = { 0 };
|
char buf[128] = { 0 };
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
if (prefix != NULL)
|
if (prefix != NULL)
|
||||||
len = snprintf(buf,sizeof(buf),"%s: ",prefix);
|
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);
|
__redisSetError(c,type,buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user