mirror of
https://github.com/fluencelabs/redis
synced 2025-06-11 16:21:21 +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:
@ -917,8 +917,10 @@ int string2ull(const char *s, unsigned long long *value) {
|
||||
return 1;
|
||||
}
|
||||
errno = 0;
|
||||
*value = strtoull(s,NULL,10);
|
||||
if (errno == EINVAL || errno == ERANGE) return 0; /* strtoull() failed. */
|
||||
char *endptr = NULL;
|
||||
*value = strtoull(s,&endptr,10);
|
||||
if (errno == EINVAL || errno == ERANGE || !(*s != '\0' && *endptr == '\0'))
|
||||
return 0; /* strtoull() failed. */
|
||||
return 1; /* Conversion done! */
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user