From: dan Date: Mon, 22 Jun 2020 16:02:06 +0000 (+0000) Subject: Fix problems with handling return value of mmap() in lsm_unix.c (mmap() returns MAP_F... X-Git-Tag: version-3.33.0~106 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3259295533f105ae47378248d5ceee3a915c1135;p=thirdparty%2Fsqlite.git Fix problems with handling return value of mmap() in lsm_unix.c (mmap() returns MAP_FAILED on error, not NULL). FossilOrigin-Name: da06168c09df5c0e8e10d0f9618e69217d4c0173a8199660bad2805f009d7b08 --- diff --git a/ext/lsm1/lsm_unix.c b/ext/lsm1/lsm_unix.c index 22240771ea..88952d15fc 100644 --- a/ext/lsm1/lsm_unix.c +++ b/ext/lsm1/lsm_unix.c @@ -228,6 +228,10 @@ static int lsmPosixOsRemap( } p->pMap = mmap(0, iSz, PROT_READ|PROT_WRITE, MAP_SHARED, p->fd, 0); + if( p->pMap==MAP_FAILED ){ + p->pMap = 0; + return LSM_IOERR_BKPT; + } p->nMap = iSz; } @@ -413,7 +417,10 @@ static int lsmPosixOsShmMap(lsm_file *pFile, int iChunk, int sz, void **ppShm){ p->apShm[iChunk] = mmap(0, LSM_SHM_CHUNK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, p->shmfd, iChunk*LSM_SHM_CHUNK_SIZE ); - if( p->apShm[iChunk]==0 ) return LSM_IOERR_BKPT; + if( p->apShm[iChunk]==MAP_FAILED ){ + p->apShm[iChunk] = 0; + return LSM_IOERR_BKPT; + } } *ppShm = p->apShm[iChunk]; diff --git a/manifest b/manifest index 6ad5a71c9d..22fdff5e28 100644 --- a/manifest +++ b/manifest @@ -1,12 +1,13 @@ B 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b -C Work\saround\sa\sbug\s(an\sincorrect\swarning)\sin\sClang-8. -D 2020-06-20T03:43:46.380 +C Fix\sproblems\swith\shandling\sreturn\svalue\sof\smmap()\sin\slsm_unix.c\s(mmap()\sreturns\sMAP_FAILED\son\serror,\snot\sNULL). +D 2020-06-22T16:02:06.546 F Makefile.in 50fc38e4f846af70c248542d2ad4e3bca3d80e3f1b9137ce79b047743d4b642c F autoconf/Makefile.am a8d1d24affe52ebf8d7ddcf91aa973fa0316618ab95bb68c87cabf8faf527dc8 +F ext/lsm1/lsm_unix.c 11e0a5c19d754a4e1d93dfad06de8cc201f10f886b8e61a4c599ed34e334fc24 F main.mk f3c3de159abc51086a16a72d0b48077d2dda6a8dfb96963f8a010136bfd98108 F src/build.c ba1bbe563a3dc02d5fed20537603181e5289c13ea30ae5e775f552e7557adbfa F tool/mkautoconfamal.sh f62353eb6c06ab264da027fd4507d09914433dbdcab9cb011cdc18016f1ab3b8 -P c7b2ee1edb108430454578c1623ba6aee1e2a7bc30cb2f9884ea3e21c3b75635 -R dbb5c23fb1d24e3d86260a377e8d8a75 -U drh -Z 257a429f7c220c505fe55670a2ea483e +P 067291143a63db924ead4810defb4bc6f195557412f5d1c22299f30d2d9f2a79 +R 9efb2d1123c6a5a0cabb094674cf03d3 +U dan +Z 1b07d7a82a5b86877bd90626c66f8988 diff --git a/manifest.uuid b/manifest.uuid index 13863bf682..9663d41330 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -067291143a63db924ead4810defb4bc6f195557412f5d1c22299f30d2d9f2a79 \ No newline at end of file +da06168c09df5c0e8e10d0f9618e69217d4c0173a8199660bad2805f009d7b08 \ No newline at end of file