]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a memory leak in sqlite3session_diff().
authordan <Dan Kennedy>
Thu, 10 Apr 2025 20:52:47 +0000 (20:52 +0000)
committerdan <Dan Kennedy>
Thu, 10 Apr 2025 20:52:47 +0000 (20:52 +0000)
FossilOrigin-Name: a6cbc5db1c4973ea236874bd9c24cd86dc48fbc7a10e424896c0407c7c32ce6a

ext/session/sessionD.test
ext/session/sqlite3session.c
manifest
manifest.uuid

index 17cb13d4ea659b17c2e900fe09b8373505a935b0..43ec03b447c6356fed26345a988af5064ca613cf 100644 (file)
@@ -282,7 +282,6 @@ proc do_sessions_diff_error {tn db tbl err} {
 }
 
 # Test that it is an error if the named db is missing.
-breakpoint
 do_sessions_diff_error 5.1 nosuchdb t1 {
   1 {SQLITE_SCHEMA - no such table: nosuchdb.t1}
 }
@@ -297,4 +296,13 @@ do_sessions_diff_error 5.3 two t1 {
   1 {SQLITE_SCHEMA - table schemas do not match}
 }
 
+do_test 5.4 {
+  sqlite3session S db main
+
+  catch {S diff two blue}
+  catch {S diff two blue}
+
+  S delete
+} {}
+
 finish_test
index d049f69862c6f8004a007d5a964994c2c9d69003..a8dd1d9be259b34cdc5656f4875e027fd3b3d496 100644 (file)
@@ -1209,6 +1209,8 @@ static int sessionInitTable(
   if( pTab->nCol==0 ){
     u8 *abPK;
     assert( pTab->azCol==0 || pTab->abPK==0 );
+    sqlite3_free(pTab->azCol);
+    pTab->abPK = 0;
     rc = sessionTableInfo(pSession, db, zDb, 
         pTab->zName, &pTab->nCol, &pTab->nTotalCol, 0, &pTab->azCol, 
         &pTab->azDflt, &pTab->aiIdx, &abPK,
index 2befe0ebac91df9c1f72614efb95c7fd6be9ae00..580bc0184f00bf1c90652761dd82d899fcfdcccd 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improved\sdetection\sof\srun-time\serrors\s(ex:\sOOM\serrors)\sin\sspeedtest1.
-D 2025-04-10T19:54:56.037
+C Fix\sa\smemory\sleak\sin\ssqlite3session_diff().
+D 2025-04-10T20:52:47.688
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -589,7 +589,7 @@ F ext/session/session9.test 4e3aff62d6b4294498ddbe309076de06f4fddffad4fe5f5a6c03
 F ext/session/sessionA.test 1feeab0b8e03527f08f2f1defb442da25480138f
 F ext/session/sessionB.test c4fb7f8a688787111606e123a555f18ee04f65bb9f2a4bb2aa71d55ce4e6d02c
 F ext/session/sessionC.test f8a5508bc059ae646e5ec9bdbca66ad24bc92fe99fda5790ac57e1f59fce2fdf
-F ext/session/sessionD.test 9e38ee4efd80722b7e9b73fa0019775ff1d9ccb98f22d878f44ad389582bbdc4
+F ext/session/sessionD.test 470ff917dc849e2eb78142ade63aaabd729d773833cff0ff01bca0eda68a21ce
 F ext/session/sessionE.test b2010949c9d7415306f64e3c2072ddabc4b8250c98478d3c0c4d064bce83111d
 F ext/session/sessionF.test d37ed800881e742c208df443537bf29aa49fd56eac520d0f0c6df3e6320f3401
 F ext/session/sessionG.test 3efe388282d641b65485b5462e67851002cd91a282dc95b685d085eb8efdad0a
@@ -617,7 +617,7 @@ F ext/session/sessionrowid.test 85187c2f1b38861a5844868126f69f9ec62223a03449a98a
 F ext/session/sessionsize.test 8fcf4685993c3dbaa46a24183940ab9f5aa9ed0d23e5fb63bfffbdb56134b795
 F ext/session/sessionstat1.test 5e718d5888c0c49bbb33a7a4f816366db85f59f6a4f97544a806421b85dc2dec
 F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc
-F ext/session/sqlite3session.c 1a28245b9814542c1b9c8f3064fc63a91b341833879b27246a0ea8cf10257069
+F ext/session/sqlite3session.c 7a8816d56940c464c74706dfb02f18129b290655df1ccb8648228a7d436141f2
 F ext/session/sqlite3session.h 532561f5b181bc623c25bfa0ecfd1f115bc9a2b42ec96fee8a67b1a10f3cc42c
 F ext/session/test_session.c af162108e8dc40cb9fe0e876e0155cecabcb49e82e5939677d21451e36160283
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
@@ -2216,8 +2216,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 578e9fedeaaacd152ae1988920e6c9a0c43f664e2f9461c0994ba427ae1688e7
-R ba4a44d30114309e9b2a1e00908db202
-U drh
-Z 4f5762aa26eeee7e23b8bf7e772aabcd
+P 0e5e0e2f558a417d57c01a2d62cb2117d2adf6ddbc62e6a0208ae23f19b05347
+R ea8e02173c6f4e7238e9e39c21ec2d22
+U dan
+Z fad13ff67cc688b0b5e83e82f9779719
 # Remove this line to create a well-formed Fossil manifest.
index 08470faabeb4454463e02856b67c1e2df4d7357f..97db019baa0c40a6bdf7fd3b22ff65ebbdcf9d37 100644 (file)
@@ -1 +1 @@
-0e5e0e2f558a417d57c01a2d62cb2117d2adf6ddbc62e6a0208ae23f19b05347
+a6cbc5db1c4973ea236874bd9c24cd86dc48fbc7a10e424896c0407c7c32ce6a