]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Memory reallocation fix for the Win32 VFS for lsm1.
authormistachkin <mistachkin@noemail.net>
Fri, 7 Jul 2017 16:06:30 +0000 (16:06 +0000)
committermistachkin <mistachkin@noemail.net>
Fri, 7 Jul 2017 16:06:30 +0000 (16:06 +0000)
FossilOrigin-Name: 5a3140e4dedace6de4366a3c52e41b818b6d19f356fdab738c6605afc1b674fa

ext/lsm1/lsm_win32.c
manifest
manifest.uuid

index d3189e4297d101f4e161353d02b83c7bfa89059c..c6e90760e06365cee10e935923180e2572e16318 100644 (file)
@@ -253,7 +253,7 @@ static int lsmWin32OsOpen(
   if( pWin32File==0 ){
     rc = LSM_NOMEM_BKPT;
   }else{
-    HANDLE hFile;
+    HANDLE hFile = NULL;
 
     rc = win32Open(pEnv, zFile, flags, &hFile);
     if( rc==LSM_OK ){
@@ -678,20 +678,22 @@ static int lsmWin32OsShmMap(lsm_file *pFile, int iChunk, int sz, void **ppShm){
       }
     }
 
-    ahNew = (LPHANDLE)lsmRealloc(pWin32File->pEnv, pWin32File->ahShm,
-                                 sizeof(LPHANDLE) * nNew);
+    ahNew = (LPHANDLE)lsmMallocZero(pWin32File->pEnv, sizeof(LPHANDLE) * nNew);
     if( !ahNew ) return LSM_NOMEM_BKPT;
-    apNew = (LPVOID *)lsmRealloc(pWin32File->pEnv, pWin32File->apShm,
-                                 sizeof(LPVOID) * nNew);
+    apNew = (LPVOID *)lsmMallocZero(pWin32File->pEnv, sizeof(LPVOID) * nNew);
     if( !apNew ){
       lsmFree(pWin32File->pEnv, ahNew);
       return LSM_NOMEM_BKPT;
     }
+    memcpy(ahNew, pWin32File->ahShm, pWin32File->nShm);
+    memcpy(apNew, pWin32File->apShm, pWin32File->nShm);
     for(i=pWin32File->nShm; i<nNew; i++){
       ahNew[i] = NULL;
       apNew[i] = NULL;
     }
+    lsmFree(pWin32File->pEnv, pWin32File->ahShm);
     pWin32File->ahShm = ahNew;
+    lsmFree(pWin32File->pEnv, pWin32File->apShm);
     pWin32File->apShm = apNew;
     pWin32File->nShm = nNew;
   }
index aff2064136134b38c90ccf91844fc0449065bd09..2671c0931e3718572ecc40ab6e2e98e4f9b61ca5 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Enhance\sthe\ssqlite3VdbeMultiLoad()\sinterface\sto\sautomatically\sgenerate\sthe\nOP_ResultRow\sopcode\son\sPRAGMA\simplementations,\sfor\sa\ssmall\sreduction\sin\sthe\nlibrary\sfootprint.
-D 2017-07-07T16:00:53.019
+C Memory\sreallocation\sfix\sfor\sthe\sWin32\sVFS\sfor\slsm1.
+D 2017-07-07T16:06:30.430
 F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 4ebb1d257cac7fb1bcb4ba59278416d410ff1c4bf59447a9c37a415f3516056a
@@ -250,7 +250,7 @@ F ext/lsm1/lsm_tree.c 53b657439e0fcb1117b0559ad3567ac417f81f2ed0fff9bab79948a00e
 F ext/lsm1/lsm_unix.c 57361bcf5b1a1a028f5d66571ee490e9064d2cfb145a2cc9e5ddade467bb551b
 F ext/lsm1/lsm_varint.c b19ae9bd26b5a1e8402fb8a564b25d9542338a41
 F ext/lsm1/lsm_vtab.c 812b74a9a7539e8cab49761591ffddc1b3580735fac5d638826c8d2be95ff38b
-F ext/lsm1/lsm_win32.c 69eb9fd25197432b084037efd69b365d8182ab1e4372a9c45a9c47e542105c5c
+F ext/lsm1/lsm_win32.c e2114824b1db4aea6212e05c16ab70370de46896d1d825dc4f8702411bd269f7
 F ext/misc/README.md 8e008c8d2b02e09096b31dfba033253ac27c6c06a18aa5826e299fa7601d90b2
 F ext/misc/amatch.c 6db4607cb17c54b853a2d7c7c36046d004853f65b9b733e6f019d543d5dfae87
 F ext/misc/anycollseq.c 5ffdfde9829eeac52219136ad6aa7cd9a4edb3b15f4f2532de52f4a22525eddb
@@ -1628,7 +1628,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 aacbb9a461fdb34c7f9c8ce348e44c3e96c93334f210d438d92bfac1794dc686
-R 7baffcdf7a331e746202781d1effd9e4
-U drh
-Z f6a212b381ae2bf356b441292bd9b562
+P c46f0f076c674891e20240bad56693d891aedc43004bcf980a5d199515f23413
+R 4d89fae253073c0782e85c8a3d95f158
+U mistachkin
+Z 1b373bb5c83dcb5af7e9a15d3d0aec3e
index 1cae0fc2bbdc95a18ebd98c8747982e413e79c3a..4ffaaa20cc1eb1f4b9b9c8908c4cb942ff44ecb9 100644 (file)
@@ -1 +1 @@
-c46f0f076c674891e20240bad56693d891aedc43004bcf980a5d199515f23413
\ No newline at end of file
+5a3140e4dedace6de4366a3c52e41b818b6d19f356fdab738c6605afc1b674fa
\ No newline at end of file