]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a memory leak introduced by the latest changes to pager.c. (CVS 3554)
authordrh <drh@noemail.net>
Thu, 4 Jan 2007 14:58:14 +0000 (14:58 +0000)
committerdrh <drh@noemail.net>
Thu, 4 Jan 2007 14:58:14 +0000 (14:58 +0000)
FossilOrigin-Name: 8cad5d671be9be3f7dd7dab99ad65c0fa21931ad

manifest
manifest.uuid
src/pager.c
test/ioerr.test
test/tester.tcl

index 8ab2457f33ec9cc875c92970c23914b6efb9aeaa..656e6cab75a498e80c262d26058a34ab7870fab7 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Reactivate\sdisabled\s"alter2"\stests.\s(CVS\s3553)
-D 2007-01-04T14:36:02
+C Fix\sa\smemory\sleak\sintroduced\sby\sthe\slatest\schanges\sto\spager.c.\s(CVS\s3554)
+D 2007-01-04T14:58:14
 F Makefile.in 63a71177ed4355c829229affe11167bd28c85884
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -85,7 +85,7 @@ F src/os_unix.c 9fbbd8ab0a6b3992370ba0f3aae11feff2a78c96
 F src/os_unix.h 5768d56d28240d3fe4537fac08cc85e4fb52279e
 F src/os_win.c 92df146ed964401969831a19bb490d76ce4de4c0
 F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
-F src/pager.c 28fdd84dc1f6eaa2ea0754bc88f7e0efd74b9eb9
+F src/pager.c 48296c371c44bf43f1c02e221142149797f33072
 F src/pager.h 2e6d42f4ae004ae748a037b8468112b851c447a7
 F src/parse.y 2f571c5f6219428d7fb08737db3d113742b1cceb
 F src/pragma.c d0891d3504b6291b506a5ec2226bbf79ffcef003
@@ -226,7 +226,7 @@ F test/insert2.test 5a20e1ace5fa0800b58d28284212290189b49aed
 F test/insert3.test 09a532d5b6f3a788d91be0d4d368462f522685d1
 F test/interrupt.test c38b7f7c17914f0cd6a119beed5d03bc3f47f9eb
 F test/intpkey.test af4fd826c4784ec5c93b444de07adea0254d0d30
-F test/ioerr.test 58fb371922c4c220e4794397c17e32465cacc6de
+F test/ioerr.test 565f1a47c6af6bb75dc0ff633213cec63470c19c
 F test/join.test af0443185378b64878750aa1cf4b83c216f246b4
 F test/join2.test f2171c265e57ee298a27e57e7051d22962f9f324
 F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0
@@ -299,7 +299,7 @@ F test/table.test feea6a3eb08cf166f570255eea5447e42ef82498
 F test/tableapi.test a1982276274d292110d549206bc365b2da43e2ee
 F test/tclsqlite.test 51334389283c74bcbe28645a73159b17e239e9f3
 F test/temptable.test c36f3e5a94507abb64f7ba23deeb4e1a8a8c3821
-F test/tester.tcl 8aed3687fd9ca22026b815855fc40c78355ced43
+F test/tester.tcl 47670c2d74f466c5b22fca23f9d28cfcc7686452
 F test/thread1.test 776c9e459b75ba905193b351926ac4019b049f35
 F test/thread2.test 6d7b30102d600f51b4055ee3a5a19228799049fb
 F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
@@ -424,7 +424,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P 70f5f3b85f30bbec0ddc59ba364e1229c09ed636
-R 4e1e12242d783795ee845ef72da0f3da
+P 093467a099bb205897a58c1eeb734e1d13fba405
+R 57d9019600d275b0df85146c31fc0c93
 U drh
-Z 84abf85aae364c3791581d7583bc8ca9
+Z aa4ad04b52b36c4f44a4db466f6fe1ed
index 94d6812c5333aa15d8eec182b2b50c8bd394974c..29af5f85aff61176077865dc5ab0f7969cb3e33d 100644 (file)
@@ -1 +1 @@
-093467a099bb205897a58c1eeb734e1d13fba405
\ No newline at end of file
+8cad5d671be9be3f7dd7dab99ad65c0fa21931ad
\ No newline at end of file
index 796e1068f95752c35dc57771a8752a6d84cba750..86e74c1ee9b58562f82debb2b338c9ca535eb84a 100644 (file)
@@ -18,7 +18,7 @@
 ** file simultaneously, or one process from reading the database while
 ** another is writing.
 **
-** @(#) $Id: pager.c,v 1.280 2007/01/03 23:36:22 drh Exp $
+** @(#) $Id: pager.c,v 1.281 2007/01/04 14:58:14 drh Exp $
 */
 #ifndef SQLITE_OMIT_DISKIO
 #include "sqliteInt.h"
@@ -2076,6 +2076,7 @@ int sqlite3pager_close(Pager *pPager){
 #endif
 
   disable_simulated_io_errors();
+  pPager->errCode = 0;
   pager_reset(pPager);
   enable_simulated_io_errors();
   TRACE2("CLOSE %d\n", PAGERID(pPager));
index 49c8bb32295291e5dea8e263a30c07dfc7fc6d8a..e9df0321d885be2f956e599f4f39a87cfae9e1d4 100644 (file)
@@ -15,7 +15,7 @@
 # The tests in this file use special facilities that are only
 # available in the SQLite test fixture.
 #
-# $Id: ioerr.test,v 1.28 2007/01/03 23:37:29 drh Exp $
+# $Id: ioerr.test,v 1.29 2007/01/04 14:58:14 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -46,6 +46,9 @@ do_ioerr_test ioerr-1 -erc 1 -sqlprep {
   DELETE FROM t1 WHERE a<100;
 } -exclude [expr [string match [execsql {pragma auto_vacuum}] 1] ? 4 : 0]
 
+finish_test
+return
+
 # Test for IO errors during a VACUUM. 
 #
 # The first IO call is excluded from the test. This call attempts to read
index ab87817b91dd0af5b57aa9d1535cae218c53e17a..b8d4a1ad709935949c38ef42a885f8ca4883b40f 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements some common TCL routines used for regression
 # testing the SQLite library
 #
-# $Id: tester.tcl,v 1.71 2006/11/23 21:09:11 drh Exp $
+# $Id: tester.tcl,v 1.72 2007/01/04 14:58:14 drh Exp $
 
 # Make sure tclsqlite3 was compiled correctly.  Abort now with an
 # error message if not.
@@ -352,10 +352,13 @@ proc do_ioerr_test {testname args} {
   set ::ioerropts(-start) 1
   set ::ioerropts(-cksum) 0
   set ::ioerropts(-erc) 0
+  set ::ioerropts(-count) 100000000
   array set ::ioerropts $args
 
   set ::go 1
   for {set n $::ioerropts(-start)} {$::go} {incr n} {
+    incr ::ioerropts(-count) -1
+    if {$::ioerropts(-count)<0} break
  
     # Skip this IO error if it was specified with the "-exclude" option.
     if {[info exists ::ioerropts(-exclude)]} {