mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 09:00:51 +00:00
Bugfix: xadd command ID parse
strictly check the string to be converted, strtoull() in libc may not set errno to EINVAL when the string contains invalid digits.
This commit is contained in:
parent
8ac7af1c5d
commit
3c20b3fc24
@ -917,8 +917,10 @@ int string2ull(const char *s, unsigned long long *value) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
errno = 0;
|
errno = 0;
|
||||||
*value = strtoull(s,NULL,10);
|
char *endptr = NULL;
|
||||||
if (errno == EINVAL || errno == ERANGE) return 0; /* strtoull() failed. */
|
*value = strtoull(s,&endptr,10);
|
||||||
|
if (errno == EINVAL || errno == ERANGE || !(*s != '\0' && *endptr == '\0'))
|
||||||
|
return 0; /* strtoull() failed. */
|
||||||
return 1; /* Conversion done! */
|
return 1; /* Conversion done! */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user