1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

Do not accept a string that looks like a number used as an argument to

PRAGMA integrity_check as a number.  Treat it as a table name that just
happens to look like a number.

FossilOrigin-Name: b04e7a23478f1012e501a810f3e09cca81a66e802f5f72cae80c81120174e2cb
This commit is contained in:
drh
2024-05-02 11:52:31 +00:00
parent 2ae4531c89
commit 78bc1339ac
3 changed files with 8 additions and 11 deletions

View File

@@ -1,5 +1,5 @@
C Omit\sthe\sOP_SqlExec\sto\s"PRAGMA\sintegrity_check"\sadded\sby\s[348fa7aaf7958b3f]\nbecause\sit\sis\sa\sno-op.\s\sEven\sif\sthe\sintegrity_check\sfailes,\sthe\sCREATE\sTABLE\nis\sstull\ssuccessful.\s\sThe\sOP_SqlExec\sjust\sburns\sCPU\scycles\sfor\sno\sreason. C Do\snot\saccept\sa\sstring\sthat\slooks\slike\sa\snumber\sused\sas\san\sargument\sto\nPRAGMA\sintegrity_check\sas\sa\snumber.\s\sTreat\sit\sas\sa\stable\sname\sthat\sjust\nhappens\sto\slook\slike\sa\snumber.
D 2024-05-02T11:51:26.866 D 2024-05-02T11:52:31.688
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -745,7 +745,7 @@ F src/parse.y 5bcef16094213efcc365a9d4dc4e3131f09251dc8838dce4a9e5f9764bff5b82
F src/pcache.c 040b165f30622a21b7a9a77c6f2e4877a32fb7f22d4c7f0d2a6fa6833a156a75 F src/pcache.c 040b165f30622a21b7a9a77c6f2e4877a32fb7f22d4c7f0d2a6fa6833a156a75
F src/pcache.h 1497ce1b823cf00094bb0cf3bac37b345937e6f910890c626b16512316d3abf5 F src/pcache.h 1497ce1b823cf00094bb0cf3bac37b345937e6f910890c626b16512316d3abf5
F src/pcache1.c 602acb23c471bb8d557a6f0083cc2be641d6cafcafa19e481eba7ef4c9ca0f00 F src/pcache1.c 602acb23c471bb8d557a6f0083cc2be641d6cafcafa19e481eba7ef4c9ca0f00
F src/pragma.c f8f1845b42df684e9d31c5a1628c989a34939686049d7878bc5394ac1ae9cac4 F src/pragma.c d357a25276d222adfd4637c48880409ec4539f30844b74001c6ba5c7d1a1f0f7
F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7 F src/pragma.h e690a356c18e98414d2e870ea791c1be1545a714ba623719deb63f7f226d8bb7
F src/prepare.c 371f6115cb69286ebc12c6f2d7511279c2e47d9f54f475d46a554d687a3b312c F src/prepare.c 371f6115cb69286ebc12c6f2d7511279c2e47d9f54f475d46a554d687a3b312c
F src/printf.c 8b250972305e14b365561be5117ed0fd364e4fd58968776df1ce64c6280b90f9 F src/printf.c 8b250972305e14b365561be5117ed0fd364e4fd58968776df1ce64c6280b90f9
@@ -2187,11 +2187,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 1c7e33a8aa0e6122b5ef606e4a7d95e8ecd9440216d4b099fe8f2a40653422be P 532795acd1c800751737fe70148f9ae691e9cf11b836577f8538421d24cab2fe
R fa686d9a513ff74fa7b322c41469fcee R ac4ea06b7b0d066e4f57370f325b3bc3
T *branch * faster-create
T *sym-faster-create *
T -sym-trunk *
U drh U drh
Z 8e0fd4c6a3749c78cd7f96ba5b5be837 Z fc28259a0336795cd85fcb803ce7457a
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
532795acd1c800751737fe70148f9ae691e9cf11b836577f8538421d24cab2fe b04e7a23478f1012e501a810f3e09cca81a66e802f5f72cae80c81120174e2cb

View File

@@ -1703,7 +1703,7 @@ void sqlite3Pragma(
/* Set the maximum error count */ /* Set the maximum error count */
mxErr = SQLITE_INTEGRITY_CHECK_ERROR_MAX; mxErr = SQLITE_INTEGRITY_CHECK_ERROR_MAX;
if( zRight ){ if( zRight ){
if( sqlite3GetInt32(zRight, &mxErr) ){ if( sqlite3GetInt32(pValue->z, &mxErr) ){
if( mxErr<=0 ){ if( mxErr<=0 ){
mxErr = SQLITE_INTEGRITY_CHECK_ERROR_MAX; mxErr = SQLITE_INTEGRITY_CHECK_ERROR_MAX;
} }