From: drh <> Date: Wed, 14 Apr 2021 11:20:44 +0000 (+0000) Subject: Fix an assert() in the code generator for expressions so that it is valid X-Git-Tag: version-3.36.0~205 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f817189e1b35a15c187c7515a78e12894096366c;p=thirdparty%2Fsqlite.git Fix an assert() in the code generator for expressions so that it is valid even after an OOM. FossilOrigin-Name: 427e83eb583a4f63650912f078122e7373fe8c7ea11acfdab464d748b4235261 --- diff --git a/manifest b/manifest index 656e3d9028..5ab060a555 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\sundefined\ssigned\sinteger\soverflow\sin\sfts5. -D 2021-04-13T17:45:36.141 +C Fix\san\sassert()\sin\sthe\scode\sgenerator\sfor\sexpressions\sso\sthat\sit\sis\svalid\neven\safter\san\sOOM. +D 2021-04-14T11:20:44.797 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -494,7 +494,7 @@ F src/date.c e0632f335952b32401482d099321bbf12716b29d6e72836b53ae49683ebae4bf F src/dbpage.c 8a01e865bf8bc6d7b1844b4314443a6436c07c3efe1d488ed89e81719047833a F src/dbstat.c 3aa79fc3aed7ce906e4ea6c10e85d657299e304f6049861fe300053ac57de36c F src/delete.c 73f57a9a183532c344a3135cf8f2a5589376e39183e0b5f562d6b61b2af0f4d8 -F src/expr.c 818ede599e69358e62c99cfec498b76a31780cf9b8a262d08dc2625d71ef11d1 +F src/expr.c f18126b29be917d7369ec87b64466ac9dfc2a565df23c828fdaf432389ec7da7 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c e9063648396c58778f77583a678342fe4a9bc82436bf23c5f9f444f2df0fdaa4 F src/func.c 479f6929be027eb0210cbdde9d3529c012facf082d64a6b854a9415940761e5e @@ -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 608b6644b932c4d0c26ab870322639deefde4606f9e335575f99995bc7ed08b5 -R 766e4dc8419b7dc6185fe581d4d59a77 -U dan -Z 3d7da3e5f9ff1edb48faf8218673155f +P e6f0adb00da84561e686a8db83858c7fd6b008756dd1aef807ea68f878ca3db7 +R 38747ff5a5c14ee901112abc4324c3ba +U drh +Z ac6ee8f7ba85eca4095d2d881fc37819 diff --git a/manifest.uuid b/manifest.uuid index 2a78f2d72e..18de67692b 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e6f0adb00da84561e686a8db83858c7fd6b008756dd1aef807ea68f878ca3db7 \ No newline at end of file +427e83eb583a4f63650912f078122e7373fe8c7ea11acfdab464d748b4235261 \ No newline at end of file diff --git a/src/expr.c b/src/expr.c index acc144beab..898ed85194 100644 --- a/src/expr.c +++ b/src/expr.c @@ -4016,7 +4016,7 @@ expr_code_doover: ** Expr node to be passed into this function, it will be handled ** sanely and not crash. But keep the assert() to bring the problem ** to the attention of the developers. */ - assert( op==TK_NULL ); + assert( op==TK_NULL || pParse->db->mallocFailed ); sqlite3VdbeAddOp2(v, OP_Null, 0, target); return target; }