diff --git a/manifest b/manifest index a62b533595..3c59dae559 100644 --- a/manifest +++ b/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. diff --git a/manifest.uuid b/manifest.uuid index 5f7e043ce8..9cf4dafd72 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -18b6a43eb8c242e923a852c046a48fe8430d1596c286e114eb1383d6de9adafa +7f0149c9696ed8c804fb1f6d4e78f4e887e465015795e03bae0f8ea648d515b4 diff --git a/src/util.c b/src/util.c index 1b72e4cae7..c37ab9741e 100644 --- a/src/util.c +++ b/src/util.c @@ -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; diff --git a/test/misc7.test b/test/misc7.test index f4ef2d2103..6324ddf363 100644 --- a/test/misc7.test +++ b/test/misc7.test @@ -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