From: dan Date: Fri, 9 Apr 2021 20:50:40 +0000 (+0000) Subject: Have the VFS in memdb.c return SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM when an... X-Git-Tag: version-3.36.0~228 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a3a91dd5f182acb63de3ad45e2b53b9abd0d1ee7;p=thirdparty%2Fsqlite.git Have the VFS in memdb.c return SQLITE_IOERR_NOMEM instead of SQLITE_NOMEM when an OOM error is encountered. This is required to get the pager module to handle such OOM errors correctly in some cases. FossilOrigin-Name: 09c96b4c026746f285a8aef5199bd247ecca590095ee42dde4f4dfa4996ce0bd --- diff --git a/manifest b/manifest index 92262d8368..8910a2c92b 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\suse-after-free\serror\sthat\scould\soccur\swhen\sprocessing\s"SELECT\saggregate(DISTINCT\s)..."\squeries. -D 2021-04-08T20:29:12.532 +C Have\sthe\sVFS\sin\smemdb.c\sreturn\sSQLITE_IOERR_NOMEM\sinstead\sof\sSQLITE_NOMEM\swhen\san\sOOM\serror\sis\sencountered.\sThis\sis\srequired\sto\sget\sthe\spager\smodule\sto\shandle\ssuch\sOOM\serrors\scorrectly\sin\ssome\scases. +D 2021-04-09T20:50:40.257 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -513,7 +513,7 @@ F src/mem1.c c12a42539b1ba105e3707d0e628ad70e611040d8f5e38cf942cee30c867083de F src/mem2.c b93b8762ab999a29ae7751532dadf0a1ac78040308a5fb1d17fcc365171d67eb F src/mem3.c 30301196cace2a085cbedee1326a49f4b26deff0af68774ca82c1f7c06fda4f6 F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944 -F src/memdb.c ab0632d42407e866d2b616bd19d4211ac0ad1b430f04c4e187d60005b8700b98 +F src/memdb.c eab3c87582a99de1589703e393b0238881c9a16511dc5a29009e84042a5e9f25 F src/memjournal.c 431c70a111223a8a6e2e7e9f014afc6c88d818d357d866afc563195f2277d50e F src/msvc.h 3a15918220367a8876be3fa4f2abe423a861491e84b864fb2b7426bf022a28f8 F src/mutex.c 5e3409715552348732e97b9194abe92fdfcd934cfb681df4ba0ab87ac6c18d25 @@ -1912,7 +1912,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 466f508973e7adc983a4c9bd7c86b4d9269e3b990183fc7f95a50fe72b832ad0 -R dc4f4e7df3f2755f0ab15328cef32677 +P 0e4789860b81c31d3a6d1f9f8340042ce1d08a82bf6119c783fcab85180b1b63 +R 1dcd3387f72b40469fd0f94d61b83e14 U dan -Z 60fabc9af77c328e9b10bc80fdc4b65d +Z 8f211435e3db29442c2817270ff32961 diff --git a/manifest.uuid b/manifest.uuid index 10c6dee11c..d5dc08b1a0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0e4789860b81c31d3a6d1f9f8340042ce1d08a82bf6119c783fcab85180b1b63 \ No newline at end of file +09c96b4c026746f285a8aef5199bd247ecca590095ee42dde4f4dfa4996ce0bd \ No newline at end of file diff --git a/src/memdb.c b/src/memdb.c index a48980aa34..b25e13cbc1 100644 --- a/src/memdb.c +++ b/src/memdb.c @@ -170,7 +170,7 @@ static int memdbEnlarge(MemFile *p, sqlite3_int64 newSz){ newSz *= 2; if( newSz>p->szMax ) newSz = p->szMax; pNew = sqlite3Realloc(p->aData, newSz); - if( pNew==0 ) return SQLITE_NOMEM; + if( pNew==0 ) return SQLITE_IOERR_NOMEM; p->aData = pNew; p->szAlloc = newSz; return SQLITE_OK;