aboutsummaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authordrh <>2023-07-21 18:38:59 +0000
committerdrh <>2023-07-21 18:38:59 +0000
commit028acd974f3c03c489dfaa02da618af99613cde7 (patch)
tree4a3a819ba1c4ff50f2a74eec1eaa8fe3b6ddb981 /src/util.c
parent569700a72e58a1cf9efc7fb743768a64cfd77d3c (diff)
downloadsqlite-028acd974f3c03c489dfaa02da618af99613cde7.tar.gz
sqlite-028acd974f3c03c489dfaa02da618af99613cde7.zip
Avoid a potentially large strlen() in sqlite3DecOrHexToI64().
FossilOrigin-Name: 5413b02bb629b9cbb76f7e688e94ebcf24276c01436d3feb73ff57c036e1d2aa
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/util.c b/src/util.c
index 409482d39..1200aef0e 100644
--- a/src/util.c
+++ b/src/util.c
@@ -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);
}
}