From e103a8de2d1431e407e833df03a4c99b2bfe8116 Mon Sep 17 00:00:00 2001 From: drh <> Date: Mon, 3 May 2021 13:24:30 +0000 Subject: [PATCH] Fix a potential memory leak following OOM in the decimal extension. FossilOrigin-Name: 5127f7376776e6220eb8f83a30aa6b823c23ae0ac76e7ae41b33ca4e03ce236a --- ext/misc/decimal.c | 9 +++++---- manifest | 12 ++++++------ manifest.uuid | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/ext/misc/decimal.c b/ext/misc/decimal.c index a8d68ac72f..37c6c2f52c 100644 --- a/ext/misc/decimal.c +++ b/ext/misc/decimal.c @@ -459,10 +459,11 @@ static void decimalSubFunc( Decimal *pA = decimal_new(context, argv[0], 0, 0); Decimal *pB = decimal_new(context, argv[1], 0, 0); UNUSED_PARAMETER(argc); - if( pB==0 ) return; - pB->sign = !pB->sign; - decimal_add(pA, pB); - decimal_result(context, pA); + if( pB ){ + pB->sign = !pB->sign; + decimal_add(pA, pB); + decimal_result(context, pA); + } decimal_free(pA); decimal_free(pB); } diff --git a/manifest b/manifest index 0f9b2c2e92..568bd2a762 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Back\sout\sthe\sNEVER()\sinserted\sby\s[c7309ed3c7588c7e]\sbecause\sit\sis\sreachable\nafter\sall.\s\sdbsqlfuzz\sbc17a306a09329bba0ecc61547077f6178bcf321 -D 2021-05-01T12:09:36.227 +C Fix\sa\spotential\smemory\sleak\sfollowing\sOOM\sin\sthe\sdecimal\sextension. +D 2021-05-03T13:24:30.571 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -298,7 +298,7 @@ F ext/misc/compress.c 3354c77a7c8e86e07d849916000cdac451ed96500bfb5bd83b20eb61ee F ext/misc/csv.c 53b3338d4fa812eda51a2637df30233a4dae16b964ee5666e2051b9672ed8bb4 F ext/misc/dbdata.c e316fba936571584e55abd5b974a32a191727a6b746053a0c9d439bd2cf93940 F ext/misc/dbdump.c b8592f6f2da292c62991a13864a60d6c573c47a9cc58362131b9e6a64f823e01 -F ext/misc/decimal.c 3ddbf8162015be4d5ec2395dee4538f1e638bb517174bb148274b132df6e1d08 +F ext/misc/decimal.c 09f967dcf4a1ee35a76309829308ec278d3648168733f4a1147820e11ebefd12 F ext/misc/eval.c 04bc9aada78c888394204b4ed996ab834b99726fb59603b0ee3ed6e049755dc1 F ext/misc/explain.c 0086fab288d4352ea638cf40ac382aad3b0dc5e845a1ea829a694c015fd970fe F ext/misc/fileio.c 9b69e25da3b51d4a1d905a464ccb96709792ad627a742ba09215bc0d1447e7bd @@ -1914,7 +1914,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 ea221f3c8e243a5dc4952e510cbe396614a24876bacdc04fb1ebd4127c7ef0d9 -R 535ef1a4883063d40f9ea8f73dfe6502 +P 20a4f3f12cdd8823d53d91025fa41e284c9f629b1d049eb486ff8dc4a1736e1f +R d3b228fb1af524aaf61dfff58532a25f U drh -Z 2e496444743ee98521dfd704a4523040 +Z 1b25b3cedecdef3028c8a31df912f9dc diff --git a/manifest.uuid b/manifest.uuid index 8adba5d29a..27e8bc257d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -20a4f3f12cdd8823d53d91025fa41e284c9f629b1d049eb486ff8dc4a1736e1f \ No newline at end of file +5127f7376776e6220eb8f83a30aa6b823c23ae0ac76e7ae41b33ca4e03ce236a \ No newline at end of file