From: drh Date: Thu, 2 Jan 2020 21:30:13 +0000 (+0000) Subject: Do not allow the zipfile virtual table to start a transaction if no X-Git-Tag: version-3.31.0~88 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c4f82051c7ff301ea78cf1d279005d2dc26ad19;p=thirdparty%2Fsqlite.git Do not allow the zipfile virtual table to start a transaction if no filename has been specified. FossilOrigin-Name: 7405e982257611803792617f5d8142c54f9831b4a030f4de8607888c525e6289 --- diff --git a/ext/misc/zipfile.c b/ext/misc/zipfile.c index 3262283377..ef02d88d17 100644 --- a/ext/misc/zipfile.c +++ b/ext/misc/zipfile.c @@ -1444,6 +1444,7 @@ static int zipfileBegin(sqlite3_vtab *pVtab){ int rc = SQLITE_OK; assert( pTab->pWriteFd==0 ); + if( pTab->zFile==0 ) return SQLITE_OK; /* Open a write fd on the file. Also load the entire central directory ** structure into memory. During the transaction any new file data is diff --git a/manifest b/manifest index 0e63864694..e7281ec469 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\ssome\stest\slogic\sin\sthe\sOP_Delete\sopcode\sso\sthat\sit\sworks\safter\sa\ncursor-trip. -D 2020-01-02T19:50:50.203 +C Do\snot\sallow\sthe\szipfile\svirtual\stable\sto\sstart\sa\stransaction\sif\sno\nfilename\shas\sbeen\sspecified. +D 2020-01-02T21:30:13.891 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -325,7 +325,7 @@ F ext/misc/vfsstat.c 77b5b4235c9f7f11eddf82487c0a422944ac2f132dafd5af3be7a68a057 F ext/misc/vtablog.c 5538acd0c8ddaae372331bee11608d76973436b77d6a91e8635cfc9432fba5ae F ext/misc/vtshim.c 1976e6dd68dd0d64508c91a6dfab8e75f8aaf6cd F ext/misc/wholenumber.c 784b12543d60702ebdd47da936e278aa03076212 -F ext/misc/zipfile.c 185d060a595c79ebbec904e9d73b97b400dca94d2f910d351d6a8b5fcfe2c3d0 +F ext/misc/zipfile.c 442bd056690ceb82a125f2be53738c721357612b3ba5d9249220d4c1f85b2e3a F ext/misc/zorder.c b0ff58fa643afa1d846786d51ea8d5c4b6b35aa0254ab5a82617db92f3adda64 F ext/rbu/rbu.c 8681f6157db6adc82c34af24b14ea8a3be0146ad2a3b6c1d5da6cb8a5796c8ce F ext/rbu/rbu1.test 221d9c18a5e600ac9ac6b1810d99d9f99163a7909ba61597876ab6e4d4beb3d6 @@ -1749,7 +1749,7 @@ F test/wordcount.c d721a4b6fae93e6e33449700bce1686bc23257c27425bc3ef1599dc912ade F test/writecrash.test f1da7f7adfe8d7f09ea79b42e5ca6dcc41102f27f8e334ad71539501ddd910cc F test/zeroblob.test 07a5b11ab591d1f26c626945fb7f228f68b993533b2ada77273edf6ee29db174 F test/zerodamage.test 9c41628db7e8d9e8a0181e59ea5f189df311a9f6ce99cc376dc461f66db6f8dc -F test/zipfile.test aab99dc488586842bed415a1ce1a2327948064aa660c00243e3f14a1ff1cf282 +F test/zipfile.test 42603fac7f7d6fdb3e8690da9fd1492b89b2325b3946fcff683cc88437d84ce4 F test/zipfile2.test 9903388a602a3834189857a985106ff95c3bba6a3969e0134127df991889db5d F test/zipfilefault.test 44d4d7a7f7cca7521d569d7f71026b241d65a6b1757aa409c1a168827edbbc2c F tool/GetFile.cs 47852aa0d806fe47ed1ac5138bdce7f000fe87aaa7f28107d0cb1e26682aeb44 @@ -1853,7 +1853,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 4fcf07f79672d203efbc90ad21d97f6a131c3885306f8e0bab015d5ac44b8644 -R 23c2d910f0f8167283a76ba9540e77df +P 28900e5cab73f9edb9383d64a37e14fed0602966cb704ddffa60c0281698fd52 +R 03baaef710a83490f407e9d1a4367e2e U drh -Z 335647452bacbb554070cabfbe244c03 +Z 36e9c165e34c3938dc7f6f92537f7688 diff --git a/manifest.uuid b/manifest.uuid index e2a7ccfb80..ed83f643ec 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -28900e5cab73f9edb9383d64a37e14fed0602966cb704ddffa60c0281698fd52 \ No newline at end of file +7405e982257611803792617f5d8142c54f9831b4a030f4de8607888c525e6289 \ No newline at end of file diff --git a/test/zipfile.test b/test/zipfile.test index 6ea9ac6a01..da853e0aed 100644 --- a/test/zipfile.test +++ b/test/zipfile.test @@ -834,6 +834,11 @@ do_execsql_test 15.20 { REPLACE INTO t2 values(null,null,null,null,null,10,null); } {} +# 2020-01-02 Yongheng fuzzer discovery +# +do_catchsql_test 16.10 { + DELETE FROM zipfile; +} {1 {zipfile() function requires an argument}} finish_test