From: dan Date: Thu, 7 Jan 2021 16:59:35 +0000 (+0000) Subject: Update cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS... X-Git-Tag: version-3.35.0~144 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=3a5e9759478a0e048857ce574c1a7c1a67d68851;p=thirdparty%2Fsqlite.git Update cksumvfs to check that the xCurrentTimeGetInt64 method of the underlying VFS is not NULL before invoking it. FossilOrigin-Name: c71f6cadcc8c2172ad4113bbe4026aac4ebb8a91485454e8a14de32d197a93aa --- diff --git a/ext/misc/cksumvfs.c b/ext/misc/cksumvfs.c index 46f3a4f0b5..0f6b00f436 100644 --- a/ext/misc/cksumvfs.c +++ b/ext/misc/cksumvfs.c @@ -750,7 +750,17 @@ static int cksmGetLastError(sqlite3_vfs *pVfs, int a, char *b){ return ORIGVFS(pVfs)->xGetLastError(ORIGVFS(pVfs), a, b); } static int cksmCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *p){ - return ORIGVFS(pVfs)->xCurrentTimeInt64(ORIGVFS(pVfs), p); + sqlite3_vfs *pOrig = ORIGVFS(pVfs); + int rc; + assert( pOrig->iVersion>=2 ); + if( pOrig->xCurrentTimeInt64 ){ + rc = pOrig->xCurrentTimeInt64(pOrig, p); + }else{ + double r; + rc = pOrig->xCurrentTime(pOrig, &r); + *p = (sqlite3_int64)(r*86400000.0); + } + return rc; } static int cksmSetSystemCall( sqlite3_vfs *pVfs, diff --git a/manifest b/manifest index 2e2be77dba..8d841b8124 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sproblems\swith\ssome\s"crashsql"\stests. -D 2021-01-07T16:29:34.204 +C Update\scksumvfs\sto\scheck\sthat\sthe\sxCurrentTimeGetInt64\smethod\sof\sthe\sunderlying\sVFS\sis\snot\sNULL\sbefore\sinvoking\sit. +D 2021-01-07T16:59:35.102 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -291,7 +291,7 @@ F ext/misc/blobio.c a867c4c4617f6ec223a307ebfe0eabb45e0992f74dd47722b96f3e631c0e F ext/misc/btreeinfo.c d28ce349b40054eaa9473e835837bad7a71deec33ba13e39f963d50933bfa0f9 F ext/misc/carray.c b75a0f207391038bf1540d3372f482a95c3613511c7c474db51ede1196321c7c F ext/misc/carray.h de74ac70b2338f416723f7d538026e8ec0b7f1d388319f8f140c9a4d7677f02e -F ext/misc/cksumvfs.c 688a59d6c5dc7e7e0aba09654d8cbeeb7d04bad8cf57902df86aa06c2f723ff4 +F ext/misc/cksumvfs.c 8dc4e1b718e374bed3a9b5c0a08da2922438002e33267311697768e06217b983 F ext/misc/closure.c dbfd8543b2a017ae6b1a5843986b22ddf99ff126ec9634a2f4047cd14c85c243 F ext/misc/completion.c 6dafd7f4348eecc7be9e920d4b419d1fb2af75d938cd9c59a20cfe8beb2f22b9 F ext/misc/compress.c 3354c77a7c8e86e07d849916000cdac451ed96500bfb5bd83b20eb61eee012c9 @@ -1895,7 +1895,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 d1e22e2f76cce7eb9f9029646176daef2d9e41c7bb1d3e1da182fbdd0096605c -R f2a08ccfa9bd07e6fe085165034f514e +P 0c8e2ede5c325aa7fef8e8587057ec8c865fc7cf3e974a2733066fbac640b983 +R 1a3bee667f65d0e32bb0f436f092ae42 U dan -Z ff87a608ac05b1370695f464c3f563ec +Z 9608ffa77e14ed1f71d5ad4aa271555e diff --git a/manifest.uuid b/manifest.uuid index 3c3c05d554..40bf37ae0e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0c8e2ede5c325aa7fef8e8587057ec8c865fc7cf3e974a2733066fbac640b983 \ No newline at end of file +c71f6cadcc8c2172ad4113bbe4026aac4ebb8a91485454e8a14de32d197a93aa \ No newline at end of file