]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a memory leak so that now all dev tests (including TH3) are passing.
authordrh <>
Tue, 20 Aug 2024 17:24:42 +0000 (17:24 +0000)
committerdrh <>
Tue, 20 Aug 2024 17:24:42 +0000 (17:24 +0000)
FossilOrigin-Name: 3995c45fff0e4bd10bcf49cc16eb1050216426723c63ba56d3ae5ba738c34019

manifest
manifest.uuid
src/select.c

index 06a26110e06efb5c893376a2855e7762da1f77a3..a97644067914feed75a335797a03b85ea69ae1e2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Memory\sissues\sfixes\sso\sthat\smdevtest\snow\spasses.
-D 2024-08-20T16:50:21.429
+C Fix\sa\smemory\sleak\sso\sthat\snow\sall\sdev\stests\s(including\sTH3)\sare\spassing.
+D 2024-08-20T17:24:42.323
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -760,7 +760,7 @@ F src/printf.c 17054fb94ffcf7a28362e9a5af4a0f813bd0c52200ae408eeebddc81feed9274
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c 9afed5fd7b9111633bdb74a73cdc47324e28e4dc6c27113e3e9aee38fb9422ab
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
-F src/select.c 3e284895745f57de3b37b17fce9eb0e26bc54fccc94ea1ff5342be4360e3674b
+F src/select.c 9aa44e562f2fbfa33e600e3f935369dd9a07e4beb89b344dfc7187dc2adc19ce
 F src/shell.c.in 94571558b0fb28c37a5cf6dbd6ea27285341023a28a8cb5795cd2768fab67704
 F src/sqlite.h.in 1ad9110150773c38ebababbad11b5cb361bcd3997676dec1c91ac5e0416a7b86
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -2205,8 +2205,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 8ff5dda8448d7e1a533d7f27db2573ce68fa9956b9d9847ced45e83c1f06bab0
-R c585d13f1a80cb4428e40ac20e746454
+P b249516f6a6650808e035ec219e762bf24dcb7c32a6235984b995d08d07d35d8
+R 5330111931e3ecff89186b5f2d6b0982
 U drh
-Z ce4831b3d2660999f30841c855773e8f
+Z d58fa1c081ceed524dfd09ccfa304c4e
 # Remove this line to create a well-formed Fossil manifest.
index 90e67e8d3ad156f84b1ff447343fa5a8db4d6163..0ffd5cf0fb0a85435b8e1822629aad0fed2ab15f 100644 (file)
@@ -1 +1 @@
-b249516f6a6650808e035ec219e762bf24dcb7c32a6235984b995d08d07d35d8
+3995c45fff0e4bd10bcf49cc16eb1050216426723c63ba56d3ae5ba738c34019
index 8bddc03bb4a7c07f5dfa56f8f96381f22b51bbc6..0c10550facd2848840f1c317f2d5350578f259f1 100644 (file)
@@ -5600,12 +5600,17 @@ static int convertCompoundSelectToSubquery(Walker *pWalker, Select *p){
   /* If we reach this point, that means the transformation is required. */
 
   pParse = pWalker->pParse;
+  if( pParse->nErr ) return WRC_Abort;
   db = pParse->db;
   pNew = sqlite3DbMallocZero(db, sizeof(*pNew) );
   if( pNew==0 ) return WRC_Abort;
   memset(&dummy, 0, sizeof(dummy));
   pNewSrc = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&dummy,pNew,0);
-  if( pNewSrc==0 ) return WRC_Abort;
+  assert( pNewSrc!=0 || pParse->nErr );
+  if( pParse->nErr ){
+    sqlite3SrcListDelete(db, pNewSrc);
+    return WRC_Abort;
+  }
   *pNew = *p;
   p->pSrc = pNewSrc;
   p->pEList = sqlite3ExprListAppend(pParse, 0, sqlite3Expr(db, TK_ASTERISK, 0));