mirror of
https://github.com/sqlite/sqlite.git
synced 2026-10-23 21:49:02 +03:00
Fix an off-by-one error in sqlite3GetUInt32(). The only user-visible effect of fixing this problem is that the error message emitted for a corrupt database has changed in one obscure case.
FossilOrigin-Name: 7f0149c9696ed8c804fb1f6d4e78f4e887e465015795e03bae0f8ea648d515b4
This commit is contained in:
16
manifest
16
manifest
@@ -1,5 +1,5 @@
|
||||
C Work\saround\squirks\sin\sMSVC\sassociated\swith\s[d046d5f4c6855].
|
||||
D 2026-09-24T10:55:16.787
|
||||
C Fix\san\soff-by-one\serror\sin\ssqlite3GetUInt32().\sThe\sonly\suser-visible\seffect\sof\sfixing\sthis\sproblem\sis\sthat\sthe\serror\smessage\semitted\sfor\sa\scorrupt\sdatabase\shas\schanged\sin\sone\sobscure\scase.
|
||||
D 2026-09-24T15:34:05.464
|
||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
@@ -808,7 +808,7 @@ F src/trigger.c d6d8991ca346eb6f56e50a3c5df486176b67a9179336798a75bb05e622c72cac
|
||||
F src/update.c 8cd088a0ce9536b9c81b300a18d0d6dc40025150efc42641edeecb409693023c
|
||||
F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549
|
||||
F src/utf.c c5bec56770b71fe75e12f1f7b0a512032e1fd3d1f83c50c4ab4474ced20347a4
|
||||
F src/util.c cfdf9c6e5323af886d5ce766709da607ba1d14193ad3a15f4f462a45420e8211
|
||||
F src/util.c 4437408e09cef6dbb63a8b8ba28be53bdc098ec890e5e64ad7ae1fc83448962e
|
||||
F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82
|
||||
F src/vdbe.c 076f4de32c507a713cb2d666d6bc6836c3b5637fec1159d2ef39328f73989377
|
||||
F src/vdbe.h b6ffb28da04363fd5d439b8204118fd3f2e751abe4f8e3edb089155fb90d4607
|
||||
@@ -1456,7 +1456,7 @@ F test/misc3.test 252118219f59672835c93da66679500f251e474f43e6aaecdc59a0794bb9c6
|
||||
F test/misc4.test 10cd6addb2fa9093df4751a1b92b50440175dd5468a6ec84d0386e78f087db0e
|
||||
F test/misc5.test 0a5d7604e197f10ee471280bfcaaf8229f9d8e2eebfef2c8853222cbc1ea9cd5
|
||||
F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
|
||||
F test/misc7.test d595599972ec0b436985f0f02f243b68500ffc977b9b3194ec66c0866cfddcab
|
||||
F test/misc7.test 4be3797297148024ff0fec6d84ac9981975ac1f956ff007c15a41eb0f635ba0c
|
||||
F test/misc8.test 1c5e3fad1224f7bd67dbeb7dbf69cded89f6f846075805a72c7bfc6a1b1ed786
|
||||
F test/misuse.test 859f37014d9824ca66bd90c36372c08c80c51c9593a7cfa8a31d4f92cd4d5b7f
|
||||
F test/mjournal.test f054788b7ca261e3825e306a1c714060941b709fe90fde2f14336f355300d1f0
|
||||
@@ -2221,8 +2221,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
|
||||
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
|
||||
P 1b097b30ac1009073bec72f67b3bcbe55478795149017ed3c72a32ab652bf4f7
|
||||
R 784cc65e2b2092197666f0ee6ce533d4
|
||||
U drh
|
||||
Z 506ba936b7fe1d43c3f39a1a687f137e
|
||||
P 18b6a43eb8c242e923a852c046a48fe8430d1596c286e114eb1383d6de9adafa
|
||||
R 9321e115133ffbf8ca512eee01b4a6fd
|
||||
U dan
|
||||
Z 374cd219e0251894345c0612ad5021b4
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
@@ -1 +1 @@
|
||||
18b6a43eb8c242e923a852c046a48fe8430d1596c286e114eb1383d6de9adafa
|
||||
7f0149c9696ed8c804fb1f6d4e78f4e887e465015795e03bae0f8ea648d515b4
|
||||
|
||||
@@ -1547,7 +1547,7 @@ int sqlite3GetUInt32(const char *z, u32 *pI){
|
||||
int i;
|
||||
for(i=0; sqlite3Isdigit(z[i]); i++){
|
||||
v = v*10 + z[i] - '0';
|
||||
if( v>4294967296LL ){ *pI = 0; return 0; }
|
||||
if( v>4294967295LL ){ *pI = 0; return 0; }
|
||||
}
|
||||
if( i==0 || z[i]!=0 ){ *pI = 0; return 0; }
|
||||
*pI = (u32)v;
|
||||
|
||||
@@ -570,4 +570,27 @@ if {$::tcl_platform(platform) eq "unix"
|
||||
} {}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
reset_db
|
||||
foreach {tn rp} {
|
||||
1 45
|
||||
2 4294967295
|
||||
3 4294967296
|
||||
4 4294967297
|
||||
} {
|
||||
reset_db
|
||||
set rp [expr $rp]
|
||||
do_execsql_test 24.$tn.1 {
|
||||
CREATE TABLE t1(a, b, c);
|
||||
PRAGMA writable_schema = 1;
|
||||
UPDATE sqlite_schema SET rootpage = $rp;
|
||||
}
|
||||
db close
|
||||
sqlite3 db test.db
|
||||
|
||||
do_catchsql_test 24.$tn.2 {
|
||||
SELECT * FROM t1
|
||||
} {1 {malformed database schema (t1) - invalid rootpage}}
|
||||
}
|
||||
|
||||
finish_test
|
||||
|
||||
Reference in New Issue
Block a user