Fix a memory leak in fts5 that could occur when writing to an fts5 table that is being scanned by an fts5vocab cursor.

FossilOrigin-Name: 1183552de10b64a776874a23be8962c0693e5e0cd1a191ea8fa5d6a02b691e4a
This commit is contained in:
dan 2021-09-07 16:05:48 +00:00
parent eb61630b40
commit eb84c6ef35
4 changed files with 16 additions and 9 deletions

View File

@ -866,6 +866,8 @@ static void fts5StructureMakeWritable(int *pRc, Fts5Structure **pp){
}
memcpy(pLvl->aSeg, p->aLevel[i].aSeg, nByte);
}
p->nRef--;
pNew->nRef = 1;
}
*pp = pNew;
}

View File

@ -275,6 +275,11 @@ do_catchsql_test 5.1 {
INSERT INTO t1 SELECT rowid FROM v1
} {1 {query aborted}}
do_catchsql_test 5.2 {
DELETE FROM t1 WHERE rowid>100;
INSERT INTO t1 SELECT randomblob(3000) FROM v1
} {1 {query aborted}}
finish_test

View File

@ -1,5 +1,5 @@
C Fix\sa\spotential\sNULL\spointer\sdeference\sin\sthe\sLIKE\soptimization.\s\sThe\nproblem\swas\sintroduced\sby\sthe\saddition\sof\sgenerated\scolumns\nin\scheck-in\s[b855acf1831943b3]\s(SQLite\sversion\s3.31.0,\s2020-01-22).\nReported\sby\sWang\sKe\sin\n[forum/forumpost/699b44b3ee|forum\spost\s699b44b3ee].
D 2021-09-07T15:41:25.656
C Fix\sa\smemory\sleak\sin\sfts5\sthat\scould\soccur\swhen\swriting\sto\san\sfts5\stable\sthat\sis\sbeing\sscanned\sby\san\sfts5vocab\scursor.
D 2021-09-07T16:05:48.374
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@ -119,7 +119,7 @@ F ext/fts5/fts5_buffer.c 89a51b37c4aa1c02c1ec24c18c55196c0693b29a752fedfd036938d
F ext/fts5/fts5_config.c 8336d0ff6db0933f63cfec8ae0ab76e68393259cbccc0b46e1f79f7fa1842ff3
F ext/fts5/fts5_expr.c 6ea447b0cb1888110087a8c04133817b0ccf964fe22414371b0e32189a556533
F ext/fts5/fts5_hash.c 1aa93c9b5f461afba66701ee226297dc78402b3bdde81e90a10de5fe3df14959
F ext/fts5/fts5_index.c 99d3242d8416c2bb0c8e6e44e9259aac4386ea9e4f6fd0c740733583b72a4a60
F ext/fts5/fts5_index.c 742ba7ecfbd2dc24fe1204fc9c8ed0b77b05d5c29d120f1f00dac44beb788d75
F ext/fts5/fts5_main.c 35ebbcae681a4a40027c47bc2e94d7e7c81e331dc406bb9b23c546454ee8f98a
F ext/fts5/fts5_storage.c 58ba71e6cd3d43a5735815e7956ee167babb4d2cbfe206905174792af4d09d75
F ext/fts5/fts5_tcl.c b1445cbe69908c411df8084a10b2485500ac70a9c747cdc8cda175a3da59d8ae
@ -229,7 +229,7 @@ F ext/fts5/test/fts5unindexed.test 9021af86a0fb9fc616f7a69a996db0116e7936d0db638
F ext/fts5/test/fts5update.test b8affd796e45c94a4d19ad5c26606ea06065a0f162a9562d9f005b5a80ccf0bc
F ext/fts5/test/fts5version.test c8f2cc105f0abf0224965f93e584633dee3e06c91478bc67e468f7cfdf97fd6a
F ext/fts5/test/fts5vocab.test 7ed80d9af1ddaaa1637da05e406327b5aac250848bc604c1c1cc667908b87760
F ext/fts5/test/fts5vocab2.test c9674cf0ffc0384162cdc78828189bb4ed4d54e2798063b5d737e50704a2db5c
F ext/fts5/test/fts5vocab2.test 681980e92e031c9f3fe8d9c149189e876c108da2fb0fb3a25bd8a9b94bff8f68
F ext/fts5/tool/fts5speed.tcl b0056f91a55b2d1a3684ec05729de92b042e2f85
F ext/fts5/tool/fts5txt2db.tcl c0d43c8590656f8240e622b00957b3a0facc49482411a9fdc2870b45c0c82f9f
F ext/fts5/tool/loadfts5.tcl 95b03429ee6b138645703c6ca192c3ac96eaf093
@ -1922,7 +1922,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P e751c2ec786b5c1a1c9640fdc3fde036879a2c32db2bd67fe7c72604780f67b8
R f37ba84945d9bce14013653d370e48c8
U drh
Z 4944ee0b1d475ff5a31f598f9aa7b030
P b9417d400f4585004f434837022709f818044d5844fe208fe01595a6b226ef7d
R fbfb27d03a48669f1ac219704fa7775a
U dan
Z 18191cfbc7f1ec5803fe525828e4b53c

View File

@ -1 +1 @@
b9417d400f4585004f434837022709f818044d5844fe208fe01595a6b226ef7d
1183552de10b64a776874a23be8962c0693e5e0cd1a191ea8fa5d6a02b691e4a