1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-11 01:42:22 +03:00

Avoid a potentially large strlen() in sqlite3DecOrHexToI64().

FossilOrigin-Name: 5413b02bb629b9cbb76f7e688e94ebcf24276c01436d3feb73ff57c036e1d2aa
This commit is contained in:
drh
2023-07-21 18:38:59 +00:00
parent 569700a72e
commit 028acd974f
3 changed files with 10 additions and 8 deletions

View File

@@ -846,7 +846,9 @@ int sqlite3DecOrHexToI64(const char *z, i64 *pOut){
}else
#endif /* SQLITE_OMIT_HEX_INTEGER */
{
return sqlite3Atoi64(z, pOut, sqlite3Strlen30(z), SQLITE_UTF8);
int n = (int)(0x3fffffff&strspn(z,"+- \n\t0123456789"));
if( z[n] ) n++;
return sqlite3Atoi64(z, pOut, n, SQLITE_UTF8);
}
}