]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Memory leak associated with SQLITE_WRITE_WALFRAME_PREBUFFERED
authordrh <drh@noemail.net>
Thu, 18 Feb 2016 01:22:53 +0000 (01:22 +0000)
committerdrh <drh@noemail.net>
Thu, 18 Feb 2016 01:22:53 +0000 (01:22 +0000)
FossilOrigin-Name: 7bcd3ab5f0519cb9ac8f7b98827600b9eff8db85

manifest
manifest.uuid
src/wal.c

index 7b338af9a6d2035c559f325f3e22a548a2fc3dc9..2d371eb95f7d5386c8b5b8f203bb79a3b29297aa 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\s3.11.0\schanges.
-D 2016-02-15T17:40:37.807
+C Memory\sleak\sassociated\swith\sSQLITE_WRITE_WALFRAME_PREBUFFERED
+D 2016-02-18T01:22:53.158
 F Makefile.in 6bc82e8fca16b46e6158b5614f16b68cc42cbe5d
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 30f075dc4f27a07abb76088946b2944178d85347
@@ -428,7 +428,7 @@ F src/vdbesort.c ef3c6d1f1a7d44cf67bb2bee59ea3d1fe5bad174
 F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484
 F src/vtab.c bef51b4f693d82b4b0184457faa8625654534091
 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
-F src/wal.c 459a1287ca28b92dadb5b433445b7f7a199a5d87
+F src/wal.c f55f9f4e51edb0494a30c1097f815ded8b035794
 F src/wal.h 29c2a284ddd9c665199273dadc7255a227092291
 F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354
 F src/where.c 984084584c10c41e46c89ac027a5cca991bc37e6
@@ -1432,7 +1432,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh ef6ebc6fd8d2dc35db3b622015c16a023d4fef4f
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P d198a6db2e49d0205420f8ed08cfffd75ee93e1e 3d862f207e3adc00f78066799ac5a8c282430a5f
-R cbffd2c61409ebe477080fcdfd9cee6a
+P 5cecc509d05eb3d6ebf0bb736da23725827bc8b3
+R 0122a110c30ef73b7b492287f7ea5701
 U drh
-Z bc51080d07885efd1d1c87762452e1d8
+Z 6df95869e0b3f6b8862b7e14cef10938
index 536374076f81926a3475491f86dcbe012c07ba19..f7c5b26bb0b462b73ae91ddb615a6cfb0ae21226 100644 (file)
@@ -1 +1 @@
-5cecc509d05eb3d6ebf0bb736da23725827bc8b3
\ No newline at end of file
+7bcd3ab5f0519cb9ac8f7b98827600b9eff8db85
\ No newline at end of file
index 2387f07e539c5ca612b5924d6c57c22bb126d00d..5a8ec6454e12046a56136fb6aa2e9c424ee24098 100644 (file)
--- a/src/wal.c
+++ b/src/wal.c
@@ -3114,7 +3114,12 @@ int sqlite3WalFrames(
     assert( iOffset==walFrameOffset(iFrame, szPage) );
     nDbSize = (isCommit && p->pDirty==0) ? nTruncate : 0;
     rc = walWriteOneFrame(&w, p, nDbSize, iOffset);
-    if( rc ) return rc;
+    if( rc ) {
+#if defined(SQLITE_WRITE_WALFRAME_PREBUFFERED)
+      free(w.aFrameBuf);
+#endif
+      return rc;
+    }
     pLast = p;
     iOffset += szFrame;
     p->flags |= PGHDR_WAL_APPEND;
@@ -3146,7 +3151,12 @@ int sqlite3WalFrames(
       w.iSyncPoint = ((iOffset+sectorSize-1)/sectorSize)*sectorSize;
       while( iOffset<w.iSyncPoint ){
         rc = walWriteOneFrame(&w, pLast, nTruncate, iOffset);
-        if( rc ) return rc;
+        if( rc ) {
+#if defined(SQLITE_WRITE_WALFRAME_PREBUFFERED)
+          free(w.aFrameBuf);
+#endif
+          return rc;
+        }
         iOffset += szFrame;
         nExtra++;
       }