mirror of
https://github.com/curl/curl.git
synced 2025-09-10 22:22:43 +03:00
strparse: make Curl_str_number() return error for no digits
Closes #16319
This commit is contained in:
parent
5d194d942d
commit
130b6891c8
|
@ -110,7 +110,9 @@ int Curl_str_number(const char **linep, size_t *nump, size_t max)
|
|||
size_t num = 0;
|
||||
DEBUGASSERT(linep && *linep && nump);
|
||||
*nump = 0;
|
||||
while(ISDIGIT(**linep)) {
|
||||
if(!ISDIGIT(**linep))
|
||||
return STRE_NO_NUM;
|
||||
do {
|
||||
int n = **linep - '0';
|
||||
if(num > ((SIZE_T_MAX - n) / 10))
|
||||
return STRE_OVERFLOW;
|
||||
|
@ -118,7 +120,7 @@ int Curl_str_number(const char **linep, size_t *nump, size_t max)
|
|||
if(num > max)
|
||||
return STRE_BIG; /** too big */
|
||||
(*linep)++;
|
||||
}
|
||||
} while(ISDIGIT(**linep));
|
||||
*nump = num;
|
||||
return STRE_OK;
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#define STRE_BYTE 5
|
||||
#define STRE_NEWLINE 6
|
||||
#define STRE_OVERFLOW 7
|
||||
#define STRE_NO_NUM 8
|
||||
|
||||
struct Curl_str {
|
||||
const char *str;
|
||||
|
|
Loading…
Reference in New Issue
Block a user