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
aed9670c57
commit
2e0d90fc96
@ -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! */
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user