From: mistachkin Date: Thu, 29 Jun 2017 14:17:48 +0000 (+0000) Subject: A couple fixes for the Win32 interface for lsm1. X-Git-Tag: version-3.20.0~162 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3881d23c723df1fd5e1b3e7afd74ba1d9e68e81d;p=thirdparty%2Fsqlite.git A couple fixes for the Win32 interface for lsm1. FossilOrigin-Name: ebbd98e941d8a8ea97b434c29b70095515af0adab1977aa4d37fe74a7401f846 --- diff --git a/ext/lsm1/lsm_win32.c b/ext/lsm1/lsm_win32.c index 88b275f8e9..b5a2011551 100644 --- a/ext/lsm1/lsm_win32.c +++ b/ext/lsm1/lsm_win32.c @@ -486,11 +486,9 @@ static int lsmWin32OsFullpath( if( zTempUtf8 ){ int nOut = *pnOut; int nLen = strlen(zTempUtf8) + 1; - if( nLen>=nOut ){ - lsmFree(pEnv, zTempUtf8); - return LSM_IOERR_BKPT; + if( nLen<=nOut ){ + snprintf(zOut, nOut, "%s", zTempUtf8); } - snprintf(zOut, nOut, "%s", zTempUtf8); lsmFree(pEnv, zTempUtf8); *pnOut = nLen; return LSM_OK; @@ -639,7 +637,8 @@ int lsmWin32OsShmMap(lsm_file *pFile, int iChunk, int sz, void **ppShm){ assert( sz==LSM_SHM_CHUNK_SIZE ); if( iChunk>=pWin32File->nShm ){ int i; - void **apNew; + LPHANDLE ahNew; + LPVOID *apNew; int nNew = iChunk+1; lsm_i64 nReq = nNew * sz; LARGE_INTEGER fileSize; @@ -669,12 +668,20 @@ int lsmWin32OsShmMap(lsm_file *pFile, int iChunk, int sz, void **ppShm){ } } + ahNew = (void **)lsmRealloc(pWin32File->pEnv, pWin32File->ahShm, + sizeof(LPHANDLE) * nNew); + if( !ahNew ) return LSM_NOMEM_BKPT; apNew = (void **)lsmRealloc(pWin32File->pEnv, pWin32File->apShm, sizeof(LPVOID) * nNew); - if( !apNew ) return LSM_NOMEM_BKPT; + if( !apNew ){ + lsmFree(pWin32File->pEnv, ahNew); + return LSM_NOMEM_BKPT; + } for(i=pWin32File->nShm; iahShm = ahNew; pWin32File->apShm = apNew; pWin32File->nShm = nNew; } @@ -761,6 +768,7 @@ static int lsmWin32OsClose(lsm_file *pFile){ break; } }while( 1 ); + lsmFree(pWin32File->pEnv, pWin32File->ahShm); lsmFree(pWin32File->pEnv, pWin32File->apShm); lsmFree(pWin32File->pEnv, pWin32File); return rc; diff --git a/manifest b/manifest index 3675bb7564..ef9237407f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Add\sthe\sstmts\svirtual\stable\sto\stestfixture\sbuilds.\s\sAdd\snew\scompile-time\noptions\sSQLITE_ENABLE_QPSG\sand\sSQLITE_ENABLE_STMTSVTAB\sto\sctime.c -D 2017-06-29T13:41:59.045 +C A\scouple\sfixes\sfor\sthe\sWin32\sinterface\sfor\slsm1. +D 2017-06-29T14:17:48.990 F Makefile.in 2fde386bd3fca21b89a5f64eaa0c580b25079cd10f6eb9692987a70b7709edc0 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 822979c692e9f1004c3ac36802ad2c130709fe4d111c272d55b8bdeb0261070a @@ -250,7 +250,7 @@ F ext/lsm1/lsm_tree.c 5d9fb2bc58a1a70c75126bd8d7198f7b627e165b F ext/lsm1/lsm_unix.c ee0201dff10ce2008ef13a65f52a6ea348f287e795270f651596f812fcfccdcc F ext/lsm1/lsm_varint.c b19ae9bd26b5a1e8402fb8a564b25d9542338a41 F ext/lsm1/lsm_vtab.c fff303ce03168eca9e333add3c1429b3471674b0 -F ext/lsm1/lsm_win32.c bd3f7e82ec71ad09a1487d5b64fbc03e99398dc7e8ec0160b9cd0deb3ce4421c +F ext/lsm1/lsm_win32.c c7a9e2c6b6465292c27e58a5defb1427181ff7bcfde6f46a4afd6de272a4ef3b F ext/misc/README.md 8e008c8d2b02e09096b31dfba033253ac27c6c06a18aa5826e299fa7601d90b2 F ext/misc/amatch.c 6db4607cb17c54b853a2d7c7c36046d004853f65b9b733e6f019d543d5dfae87 F ext/misc/anycollseq.c 5ffdfde9829eeac52219136ad6aa7cd9a4edb3b15f4f2532de52f4a22525eddb @@ -1627,7 +1627,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 b7794cc5d5abc13c6301c8d5c1b330405432c047f154083430fd15823221e552 -R 1263a289b329cfabed471001fc5531df -U drh -Z 13eea48e6bae5beda0392b0d9ada0310 +P 60c628293a1d8a1505e1a36dbd01b1f62bcfd7915e144044c92385423cbf8e07 +R 6b1172fa5df14c2da55cdce2ba904e67 +U mistachkin +Z b1cb3cacab6d77553cd0c3ad7148e349 diff --git a/manifest.uuid b/manifest.uuid index 5f47ba9857..4922e01ded 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -60c628293a1d8a1505e1a36dbd01b1f62bcfd7915e144044c92385423cbf8e07 \ No newline at end of file +ebbd98e941d8a8ea97b434c29b70095515af0adab1977aa4d37fe74a7401f846 \ No newline at end of file