[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-merchant] branch master updated: fix memory leaks in orders/forge
From: |
gnunet |
Subject: |
[taler-merchant] branch master updated: fix memory leaks in orders/forget logic |
Date: |
Sat, 29 Aug 2020 12:39:50 +0200 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository merchant.
The following commit(s) were added to refs/heads/master by this push:
new 2d0c9c8 fix memory leaks in orders/forget logic
2d0c9c8 is described below
commit 2d0c9c8f0c730b3ee7e9f3551b628495aef1fd71
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Sat Aug 29 12:39:47 2020 +0200
fix memory leaks in orders/forget logic
---
...merchant-httpd_private-patch-orders-ID-forget.c | 31 +++++++++++-----------
src/backenddb/test_merchantdb.c | 4 ++-
2 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/src/backend/taler-merchant-httpd_private-patch-orders-ID-forget.c
b/src/backend/taler-merchant-httpd_private-patch-orders-ID-forget.c
index d2d7d65..86e7d03 100644
--- a/src/backend/taler-merchant-httpd_private-patch-orders-ID-forget.c
+++ b/src/backend/taler-merchant-httpd_private-patch-orders-ID-forget.c
@@ -68,12 +68,13 @@ TMH_private_patch_orders_ID_forget (const struct
TMH_RequestHandler *rh,
{
const char *order_id = hc->infix;
enum GNUNET_DB_QueryStatus qs;
- json_t *fields;
- json_t *contract_terms;
uint64_t order_serial;
for (unsigned int i = 0; i<MAX_RETRIES; i++)
{
+ json_t *fields;
+ json_t *contract_terms;
+
if (GNUNET_OK !=
TMH_db->start (TMH_db->cls,
"forget order"))
@@ -97,7 +98,8 @@ TMH_private_patch_orders_ID_forget (const struct
TMH_RequestHandler *rh,
TALER_EC_ORDERS_CLAIM_HARD_DB_ERROR,
NULL);
case GNUNET_DB_STATUS_SOFT_ERROR:
- goto retry;
+ TMH_db->rollback (TMH_db->cls);
+ continue;
case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
TMH_db->rollback (TMH_db->cls);
return TALER_MHD_reply_with_error (connection,
@@ -123,6 +125,7 @@ TMH_private_patch_orders_ID_forget (const struct
TMH_RequestHandler *rh,
if (GNUNET_OK != res)
{
TMH_db->rollback (TMH_db->cls);
+ json_decref (contract_terms);
return (GNUNET_NO == res)
? MHD_YES
: MHD_NO;
@@ -189,23 +192,21 @@ TMH_private_patch_orders_ID_forget (const struct
TMH_RequestHandler *rh,
hc->instance->settings.id,
order_id,
contract_terms);
+ json_decref (contract_terms);
+ json_decref (fields);
if (GNUNET_DB_STATUS_SUCCESS_ONE_RESULT != qs)
{
TMH_db->rollback (TMH_db->cls);
- if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
- goto retry;
- else
- goto giveup;
+ if (GNUNET_DB_STATUS_SOFT_ERROR != qs)
+ break;
+ }
+ else
+ {
+ qs = TMH_db->commit (TMH_db->cls);
+ if (GNUNET_DB_STATUS_SOFT_ERROR != qs)
+ break;
}
- qs = TMH_db->commit (TMH_db->cls);
-retry:
- if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
- continue;
- break;
}
-giveup:
- json_decref (contract_terms);
- json_decref (fields);
if (0 > qs)
{
return TALER_MHD_reply_with_error (connection,
diff --git a/src/backenddb/test_merchantdb.c b/src/backenddb/test_merchantdb.c
index 4d33dfb..f91d495 100644
--- a/src/backenddb/test_merchantdb.c
+++ b/src/backenddb/test_merchantdb.c
@@ -5352,8 +5352,10 @@ static int
run_test_tips (struct TestTips_Closure *cls)
{
struct TALER_Amount zero;
- TALER_amount_get_zero ("EUR", &zero);
+ GNUNET_assert (GNUNET_OK ==
+ TALER_amount_get_zero ("EUR",
+ &zero));
TEST_RET_ON_FAIL (test_insert_instance (&cls->instance,
GNUNET_DB_STATUS_SUCCESS_ONE_RESULT));
/* Test insert reserve */
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-merchant] branch master updated: fix memory leaks in orders/forget logic,
gnunet <=