From: drh Date: Fri, 16 Aug 2013 13:34:50 +0000 (+0000) Subject: Fix a potential segfault following an OOM while running ANALYZE. X-Git-Tag: version-3.8.1~132^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=61b34406032bf89435cf92ee5b6d706fb2a0af94;p=thirdparty%2Fsqlite.git Fix a potential segfault following an OOM while running ANALYZE. FossilOrigin-Name: 0118797823c9093e68113578f3f3aae65de41453 --- diff --git a/manifest b/manifest index bb48b65cf5..8b743d0d4c 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Merge\srecent\strunk\schanges\sinto\sthe\sSTAT4\sbranch. -D 2013-08-16T12:26:33.317 +C Fix\sa\spotential\ssegfault\sfollowing\san\sOOM\swhile\srunning\sANALYZE. +D 2013-08-16T13:34:50.978 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -157,7 +157,7 @@ F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc F sqlite3.pc.in ae6f59a76e862f5c561eb32a380228a02afc3cad F src/alter.c 2af0330bb1b601af7a7789bf7229675fd772a083 -F src/analyze.c 9533c7e948398bf9628178d6bf9a7845d7e29046 +F src/analyze.c 0427f9ea0b74fa90fc9b372b7f4ca136b48bb6b5 F src/attach.c 1816f5a9eea8d2010fc2b22b44f0f63eb3a62704 F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34 F src/backup.c 43b348822db3e4cef48b2ae5a445fbeb6c73a165 @@ -1107,7 +1107,7 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381 F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac -P d51df8a8fcc31c37f6e1c9612204af5738ed865e f2d175f975cd0be63425424ec322a98fb650019e -R a01801631ed4ae55018a7d07c406419f +P c69b512af276a438399747af22659415af3a5d4d +R 1d895af259827a89f1c38733ddab2eab U drh -Z 2e42de2ef767503ad01b3c8e93c6139b +Z 7fb242ddc62e8a326599f76c33fd34fe diff --git a/manifest.uuid b/manifest.uuid index 564eb232af..acd4f03a69 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c69b512af276a438399747af22659415af3a5d4d \ No newline at end of file +0118797823c9093e68113578f3f3aae65de41453 \ No newline at end of file diff --git a/src/analyze.c b/src/analyze.c index 79fd421a78..b1931914a8 100644 --- a/src/analyze.c +++ b/src/analyze.c @@ -1424,8 +1424,9 @@ static int loadStatTbl( } memcpy(pSample->p, sqlite3_column_blob(pStmt, 4), pSample->n); } - initAvgEq(pPrevIdx); - return sqlite3_finalize(pStmt); + rc = sqlite3_finalize(pStmt); + if( rc==SQLITE_OK ) initAvgEq(pPrevIdx); + return rc; } /*