]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a memory leak that was discovered by the tests that were added to
authordrh <drh@noemail.net>
Fri, 15 Jun 2007 15:31:49 +0000 (15:31 +0000)
committerdrh <drh@noemail.net>
Fri, 15 Jun 2007 15:31:49 +0000 (15:31 +0000)
cover ticket #2339. (CVS 4069)

FossilOrigin-Name: 1d10a489340718cc708e11e28e7bb31c67e00ad8

manifest
manifest.uuid
src/select.c

index 4cd2b233a94370440a7b781376db8cbd21c9844c..5424814d9293c0681409ae8c8c8eb6e22328df14 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\stest\ssuite\sbug.\sTo\saccommadate\sthe\sfact\sthat\shandles\sreturned\sby\s(db\sincrblob)\schange\sfor\sthe\ssecond\stest\ssuite\siteration\sof\sfull.test.\s(CVS\s4068)
-D 2007-06-15T15:08:08
+C Fix\sa\smemory\sleak\sthat\swas\sdiscovered\sby\sthe\stests\sthat\swere\sadded\sto\ncover\sticket\s#2339.\s(CVS\s4069)
+D 2007-06-15T15:31:50
 F Makefile.in b9971ab07868cf2b3209fe3bf8c52e7e25af4193
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -101,7 +101,7 @@ F src/pragma.c 0d25dad58bdfd6789943a10f1b9663c2eb85b96d
 F src/prepare.c 87c23644986b5e41a58bc76f05abebd899e00089
 F src/printf.c cd91e057fa7e2661673eecd4eeecf4900b1e5cfe
 F src/random.c 6119474a6f6917f708c1dee25b9a8e519a620e88
-F src/select.c a96d80c0493bf81f90415479b0055dc91f60a812
+F src/select.c 33a258fc9c9dccb28ae2d3a02f1e1148d6433148
 F src/server.c 087b92a39d883e3fa113cae259d64e4c7438bc96
 F src/shell.c d07ae326b3815d80f71c69b3c7584382e47f6447
 F src/sqlite.h.in 6bd26a1429d96d72bb0e2c72fdd323defa2f558a
@@ -505,7 +505,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 115e19fe22b9e79fcc400f3a59c80dd9828100e7
-R faac273f032f44e759059a3160b925a1
-U danielk1977
-Z f5171b3e48895d49bb0fd06bcd026d9b
+P 32218834b80b1ba900c52e43a2e59783a2553897
+R 8c6ece4f58210bbfb811dd967ab2ba6d
+U drh
+Z 9eac641c488d35429a98333827efea5b
index 4bf0fecb9c15372e06986adf6fada078697eaaeb..f959e7da6ccb9a63f3554b7eb917b03b1731e411 100644 (file)
@@ -1 +1 @@
-32218834b80b1ba900c52e43a2e59783a2553897
\ No newline at end of file
+1d10a489340718cc708e11e28e7bb31c67e00ad8
\ No newline at end of file
index ba858f04839a76b9749055ac3d5dd76cfd86b8c1..f965bcd75c324387237516d256ea28b80e036e99 100644 (file)
@@ -12,7 +12,7 @@
 ** This file contains C code routines that are called by the parser
 ** to handle SELECT statements in SQLite.
 **
-** $Id: select.c,v 1.350 2007/06/07 10:55:36 drh Exp $
+** $Id: select.c,v 1.351 2007/06/15 15:31:50 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -1771,6 +1771,9 @@ static int multiSelect(
       pOffset = p->pOffset;
       p->pOffset = 0;
       rc = sqlite3Select(pParse, p, op, unionTab, 0, 0, 0, aff);
+      /* Query flattening in sqlite3Select() might refill p->pOrderBy.
+      ** Be sure to delete p->pOrderBy, therefore, to avoid a memory leak. */
+      sqlite3ExprListDelete(p->pOrderBy);
       p->pPrior = pPrior;
       p->pOrderBy = pOrderBy;
       sqlite3ExprDelete(p->pLimit);