From: drh <> Date: Thu, 22 Apr 2021 12:38:30 +0000 (+0000) Subject: In the whereLoopXfer() routine, ensure that the destination is fully X-Git-Tag: version-3.36.0~168 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=824043150fde6d8b221138c95fb18bf3d75c674f;p=thirdparty%2Fsqlite.git In the whereLoopXfer() routine, ensure that the destination is fully initialized even if an OOM error occurs. FossilOrigin-Name: c4258708c08c5b1956052f9febbf22c1e94c8352a25059063746921d2cc373b7 --- diff --git a/manifest b/manifest index a267bec5dd..9c363fb2b9 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C The\snew\sOP_Null\sopcode\sfrom\scheck-in\s[8b54102a00852b72]\swas\snot\scoded\ncorrectly.\s\sThis\scheck-in\sattempts\sto\sfix\sthat. -D 2021-04-21T23:13:26.408 +C In\sthe\swhereLoopXfer()\sroutine,\sensure\sthat\sthe\sdestination\sis\sfully\ninitialized\seven\sif\san\sOOM\serror\soccurs. +D 2021-04-22T12:38:30.898 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -629,7 +629,7 @@ F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c 69e770e96fd56cc21608992bf2c6f1f3dc5cf2572d0495c6a643b06c3a679f14 F src/wal.h c3aa7825bfa2fe0d85bef2db94655f99870a285778baa36307c0a16da32b226a F src/walker.c 6e540867a30d81e00205995fa2dc0e3d25365a7402251c9fd5d19aa4ff5e60b6 -F src/where.c 1c305bab0996a63219a6cb3d4718587f3a5dc5608120c4448985aa2bef88b7f5 +F src/where.c cb76c17d0bded653040cb16e2f4532fa7b20f5f8c205f4078d346562821107a2 F src/whereInt.h 446e5e8018f83358ef917cf32d8e6a86dc8430113d0b17e720f1839d3faa44c4 F src/wherecode.c 992bf0d7520bffd345472fb9bc83a1ca0134e46d9e904879bb21e1e77957fcc3 F src/whereexpr.c d8cafcf6781cf871082f04d7540862cf0fe30cb381dd1b2145a380376364fe8e @@ -1913,7 +1913,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 6fe50dcc239d2d1fc2a38aa705f4c75cbe26b3e48d098537306d96d6a4005659 -R c08ea2e3d9f1c824a6f5c3535918762c +P 02af30aab24878c4382a8863512b816889400104549b51df6a632767fee48d04 +R 3d8464626ec4ed7160b5e3f3b7bf199b U drh -Z 1a1da1d17ff339b1b7dc133d35a59f0c +Z 9339130783244dccd8482f7c789d5fd4 diff --git a/manifest.uuid b/manifest.uuid index fc9b5114be..8ee3ab80b8 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -02af30aab24878c4382a8863512b816889400104549b51df6a632767fee48d04 \ No newline at end of file +c4258708c08c5b1956052f9febbf22c1e94c8352a25059063746921d2cc373b7 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 97814d4316..5859f866e0 100644 --- a/src/where.c +++ b/src/where.c @@ -1942,7 +1942,7 @@ static int whereLoopResize(sqlite3 *db, WhereLoop *p, int n){ static int whereLoopXfer(sqlite3 *db, WhereLoop *pTo, WhereLoop *pFrom){ whereLoopClearUnion(db, pTo); if( whereLoopResize(db, pTo, pFrom->nLTerm) ){ - memset(&pTo->u, 0, sizeof(pTo->u)); + memset(pTo, 0, WHERE_LOOP_XFER_SZ); return SQLITE_NOMEM_BKPT; } memcpy(pTo, pFrom, WHERE_LOOP_XFER_SZ);