aboutsummaryrefslogtreecommitdiff
path: root/ext/misc/decimal.c
diff options
context:
space:
mode:
authordrh <>2021-05-03 13:24:30 +0000
committerdrh <>2021-05-03 13:24:30 +0000
commite103a8de2d1431e407e833df03a4c99b2bfe8116 (patch)
treea06133b9ed3a7f9f7dd27099cece54a0ea488323 /ext/misc/decimal.c
parent736d11ed210a40bebe2a40bf9d3b74c856049d13 (diff)
downloadsqlite-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.c9
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);
}