diff options
author | drh <> | 2021-05-03 13:24:30 +0000 |
---|---|---|
committer | drh <> | 2021-05-03 13:24:30 +0000 |
commit | e103a8de2d1431e407e833df03a4c99b2bfe8116 (patch) | |
tree | a06133b9ed3a7f9f7dd27099cece54a0ea488323 /ext/misc/decimal.c | |
parent | 736d11ed210a40bebe2a40bf9d3b74c856049d13 (diff) | |
download | sqlite-e103a8de2d1431e407e833df03a4c99b2bfe8116.tar.gz sqlite-e103a8de2d1431e407e833df03a4c99b2bfe8116.zip |
Fix a potential memory leak following OOM in the decimal extension.
FossilOrigin-Name: 5127f7376776e6220eb8f83a30aa6b823c23ae0ac76e7ae41b33ca4e03ce236a
Diffstat (limited to 'ext/misc/decimal.c')
-rw-r--r-- | ext/misc/decimal.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/ext/misc/decimal.c b/ext/misc/decimal.c index a8d68ac72..37c6c2f52 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); } |