]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid calling computeMxChoice() after an OOM as some assert()s can fail
authordrh <>
Sat, 25 Jan 2025 00:07:14 +0000 (00:07 +0000)
committerdrh <>
Sat, 25 Jan 2025 00:07:14 +0000 (00:07 +0000)
in that routine if a prior OOM occurred while building the WhereLoop array.

FossilOrigin-Name: 8b9e621dbf599d7e75e07d75d4c400247d693ea76e00eba0919f4e33e3e10bdd

manifest
manifest.uuid
src/where.c

index 0784f8fab1e91e71be9a7394c53301bd97ed9be6..ec0df49442308599e8e13db499e06330fe823197 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\san\sincorrect\sALWAYS()\sadded\sin\scheck-in\s[7cfbe14d199bb631].
-D 2025-01-24T20:59:12.630
+C Avoid\scalling\scomputeMxChoice()\safter\san\sOOM\sas\ssome\sassert()s\scan\sfail\nin\sthat\sroutine\sif\sa\sprior\sOOM\soccurred\swhile\sbuilding\sthe\sWhereLoop\sarray.
+D 2025-01-25T00:07:14.255
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -863,7 +863,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 F src/wal.c 4e6181d8780ab0af2e1388d0754cbe6f2f04593d2b1ab6c41699a89942fd8997
 F src/wal.h ba252daaa94f889f4b2c17c027e823d9be47ce39da1d3799886bbd51f0490452
 F src/walker.c d5006d6b005e4ea7302ad390957a8d41ed83faa177e412f89bc5600a7462a014
-F src/where.c e1bd86a1f86e8713e571928db044e786d6ca99033a1642f054275cd9c4192b6c
+F src/where.c 75427197cc4a6251f7e643c27512a846593a8fc349381ca210b8e1c5b87c5fdb
 F src/whereInt.h 3b2ef4617758174d00c6940850e4988c1b195d39bcc20f2965319a1f7bffc714
 F src/wherecode.c 0c3d3199a2b769a5e2bb70feb5003dc85b3d86842ecaf903a47f2b4205ca5dab
 F src/whereexpr.c 0f93a29cabd3a338d09a1f5c6770620a1ac51ec1157f3229502a7e7767c60b6f
@@ -2208,8 +2208,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 340edbe5540762656b648c18a359ab7039b4a0af15db199fc86317a415e2bafa
-R 6b5e2e687d0ef7732e967617df5d4d35
+P 431a1a29f93dc642779dc21c3a0edad5fcda1d175e9d1e3b216fa02c234fe774
+R 5b1c7e21f9360cd4e11f23b85175a095
 U drh
-Z e079a1f3d11224b9203a1e2c133626d6
+Z 397108c3fd80a1eae2be914e45c3c459
 # Remove this line to create a well-formed Fossil manifest.
index 2a7fb17f5debd0f483f0b34717518c1c13caa1c4..848e01e8a74768148ab15eecb76dc3dfcd309298 100644 (file)
@@ -1 +1 @@
-431a1a29f93dc642779dc21c3a0edad5fcda1d175e9d1e3b216fa02c234fe774
+8b9e621dbf599d7e75e07d75d4c400247d693ea76e00eba0919f4e33e3e10bdd
index eeea2e13d04114a0f692040455306a8580d1c3db..24674f91df9eaccc1e035e88de44aa4ff25f4fda 100644 (file)
@@ -5652,6 +5652,8 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){
     mxChoice = 1;
   }else if( nLoop==2 ){
     mxChoice = 5;
+  }else if( pParse->nErr ){
+    mxChoice = 1;
   }else{
     mxChoice = computeMxChoice(pWInfo);
   }