gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-merchant] branch master updated (36ceb87 -> 11afb48)


From: gnunet
Subject: [GNUnet-SVN] [taler-merchant] branch master updated (36ceb87 -> 11afb48)
Date: Tue, 18 Jun 2019 15:53:06 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a change to branch master
in repository merchant.

    from 36ceb87  fix memory leaks
     new 02ece3f  fix double-free
     new 6ff8678  indentation fix
     new 11afb48  fix leaks

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/backend/taler-merchant-httpd_check-payment.c |  4 ++++
 src/backend/taler-merchant-httpd_pay.c           |  9 ++++++---
 src/backend/taler-merchant-httpd_refund.c        | 22 +++++++++++++++++-----
 src/backenddb/plugin_merchantdb_postgres.c       |  2 ++
 src/lib/merchant_api_pay.c                       |  9 ++++-----
 src/lib/merchant_api_refund.c                    |  1 -
 6 files changed, 33 insertions(+), 14 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_check-payment.c 
b/src/backend/taler-merchant-httpd_check-payment.c
index 11f6ff9..3c5909d 100644
--- a/src/backend/taler-merchant-httpd_check-payment.c
+++ b/src/backend/taler-merchant-httpd_check-payment.c
@@ -342,6 +342,7 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
   {
     GNUNET_break (0);
     json_decref (contract_terms);
+    GNUNET_free (last_session_id);
     GNUNET_free (final_contract_url);
     return TMH_RESPONSE_reply_internal_error (connection,
                                               
TALER_EC_CHECK_PAYMENT_FAILED_COMPUTE_PROPOSAL_HASH,
@@ -381,6 +382,7 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
       GNUNET_free_non_null (h_contract_terms_str);
       GNUNET_free (final_contract_url);
       json_decref (contract_terms);
+      GNUNET_free (last_session_id);
       return ret;
 
     }
@@ -401,6 +403,7 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
       GNUNET_free_non_null (h_contract_terms_str);
       GNUNET_free (final_contract_url);
       json_decref (contract_terms);
+      GNUNET_free (last_session_id);
       return TMH_RESPONSE_reply_internal_error (connection,
                                                 
TALER_EC_CHECK_PAYMENT_DB_FETCH_CONTRACT_TERMS_ERROR,
                                                 "Merchant database error 
(contract terms corrupted)");
@@ -426,6 +429,7 @@ MH_handler_check_payment (struct TMH_RequestHandler *rh,
     GNUNET_free_non_null (h_contract_terms_str);
     GNUNET_free (final_contract_url);
     json_decref (contract_terms);
+    GNUNET_free (last_session_id);
     return TMH_RESPONSE_reply_internal_error (connection,
                                               
TALER_EC_PAY_DB_FETCH_TRANSACTION_ERROR,
                                               "Merchant database error");
diff --git a/src/backend/taler-merchant-httpd_pay.c 
b/src/backend/taler-merchant-httpd_pay.c
index 227497f..bf15106 100644
--- a/src/backend/taler-merchant-httpd_pay.c
+++ b/src/backend/taler-merchant-httpd_pay.c
@@ -844,12 +844,15 @@ check_payment_sufficient (struct PayContext *pc)
     if (-1 == TALER_amount_cmp (&acc_amount,
                                 &pc->amount))
     {
+      char *str;
+
       GNUNET_break_op (0);
+      str = TALER_amount_to_string (&acc_amount);
       GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                   "price vs. sent: %s vs. %s\n",
-                  TALER_amount_to_string (&pc->amount),
-                  TALER_amount_to_string (&acc_amount));
-
+                  TALER_amount2s (&pc->amount),
+                  str);
+      GNUNET_free (str);
       return TALER_EC_PAY_PAYMENT_INSUFFICIENT;
     }
   }
diff --git a/src/backend/taler-merchant-httpd_refund.c 
b/src/backend/taler-merchant-httpd_refund.c
index 1a2a0f8..7ed7795 100644
--- a/src/backend/taler-merchant-httpd_refund.c
+++ b/src/backend/taler-merchant-httpd_refund.c
@@ -161,13 +161,14 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
   if (GNUNET_NO == res)
   {
     GNUNET_break_op (0);
+    json_decref (root);
     return MHD_YES;
   }
-
   if (GNUNET_SYSERR == res)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Hard error from JSON parser\n");
+    json_decref (root);
     return MHD_NO;
   }
 
@@ -177,6 +178,7 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "No instance found\n");
     GNUNET_JSON_parse_free (spec);
+    json_decref (root);
     return TMH_RESPONSE_reply_not_found (connection,
                                          TALER_EC_REFUND_INSTANCE_UNKNOWN,
                                          "Unknown instance given");
@@ -196,6 +198,7 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
     GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR != qs);
     /* Always report on hard error as well to enable diagnostics */
     GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
+    json_decref (root);
     return TMH_RESPONSE_reply_internal_error (connection,
                                               TALER_EC_REFUND_LOOKUP_DB_ERROR,
                                               "An error occurred while 
retrieving payment data from db");
@@ -205,6 +208,7 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Unknown order id given: %s\n",
                 order_id);
+    json_decref (root);
     return TMH_RESPONSE_reply_not_found (connection,
                                          TALER_EC_REFUND_ORDER_ID_UNKNOWN,
                                          "Order id not found in database");
@@ -218,8 +222,10 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
   {
     GNUNET_break (0);
     GNUNET_JSON_parse_free (spec);
+    json_decref (contract_terms);
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Could not hash contract terms\n");
+    json_decref (root);
     return TMH_RESPONSE_reply_internal_error (connection,
                                               TALER_EC_INTERNAL_LOGIC_ERROR,
                                               "Could not hash contract terms");
@@ -231,6 +237,8 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
                    "increase refund"))
     {
       GNUNET_break (0);
+      json_decref (contract_terms);
+      json_decref (root);
       return GNUNET_DB_STATUS_HARD_ERROR;
     }
     qs = db->increase_refund_for_contract_NT (db->cls,
@@ -276,6 +284,8 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
     /* Always report on hard error as well to enable diagnostics */
     GNUNET_break (GNUNET_DB_STATUS_HARD_ERROR == qs);
     GNUNET_JSON_parse_free (spec);
+    json_decref (contract_terms);
+    json_decref (root);
     return TMH_RESPONSE_reply_internal_error (connection,
                                               
TALER_EC_REFUND_MERCHANT_DB_COMMIT_ERROR,
                                               "Internal database error or 
refund amount too big");
@@ -286,6 +296,8 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
                 "Refunded amount lower or equal to previous refund: %s\n",
                 TALER_amount2s (&refund));
     GNUNET_JSON_parse_free (spec);
+    json_decref (contract_terms);
+    json_decref (root);
     return TMH_RESPONSE_reply_external_error (connection,
                                               
TALER_EC_REFUND_INCONSISTENT_AMOUNT,
                                               "Amount incorrect: not larger 
than the previous one");
@@ -308,14 +320,14 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
 
   if (GNUNET_OK !=
       GNUNET_CRYPTO_eddsa_sign (&mi->privkey.eddsa_priv,
-                               &confirmation.purpose,
-                               &sig))
+                                &confirmation.purpose,
+                                &sig))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Failed to sign successful refund confirmation\n");
     json_decref (contract_terms);
-    json_decref (root);
     GNUNET_JSON_parse_free (spec);
+    json_decref (root);
     return TMH_RESPONSE_reply_internal_error (connection,
                                               
TALER_EC_REFUND_MERCHANT_SIGNING_FAILED,
                                               "Refund done, but failed to sign 
confirmation");
@@ -352,8 +364,8 @@ MH_handler_refund_increase (struct TMH_RequestHandler *rh,
                                         contract_terms);
     GNUNET_free (refund_pickup_url);
     GNUNET_free (refund_redirect_url);
-    json_decref (root);
     GNUNET_JSON_parse_free (spec);
+    json_decref (root);
     return ret;
   }
 }
diff --git a/src/backenddb/plugin_merchantdb_postgres.c 
b/src/backenddb/plugin_merchantdb_postgres.c
index 3468994..aaf1477 100644
--- a/src/backenddb/plugin_merchantdb_postgres.c
+++ b/src/backenddb/plugin_merchantdb_postgres.c
@@ -1519,10 +1519,12 @@ find_tip_authorizations_cb (void *cls,
                             &amount))
       {
         GNUNET_break (0);
+        GNUNET_PQ_cleanup_result (rs);
         ctx->qs = GNUNET_DB_STATUS_HARD_ERROR;
         return;
       }
     }
+    GNUNET_PQ_cleanup_result (rs);
   }
 
   if (0 == i)
diff --git a/src/lib/merchant_api_pay.c b/src/lib/merchant_api_pay.c
index a4b4baf..8d47356 100644
--- a/src/lib/merchant_api_pay.c
+++ b/src/lib/merchant_api_pay.c
@@ -411,11 +411,11 @@ handle_pay_finished (void *cls,
       break;
     case MHD_HTTP_OK:
       if (GNUNET_OK ==
-         check_abort_refund (ph,
-                             json))
+          check_abort_refund (ph,
+                              json))
       {
-       TALER_MERCHANT_pay_cancel (ph);
-       return;
+        TALER_MERCHANT_pay_cancel (ph);
+        return;
       }
       response_code = 0;
       break;
@@ -957,7 +957,6 @@ TALER_MERCHANT_pay_cancel (struct TALER_MERCHANT_Pay *pay)
   TALER_curl_easy_post_finished (&pay->post_ctx);
   GNUNET_free (pay->coins);
   GNUNET_free (pay->url);
-  GNUNET_free (pay->post_ctx.json_enc);
   GNUNET_free (pay);
 }
 
diff --git a/src/lib/merchant_api_refund.c b/src/lib/merchant_api_refund.c
index 131ca19..8c96cd5 100644
--- a/src/lib/merchant_api_refund.c
+++ b/src/lib/merchant_api_refund.c
@@ -177,7 +177,6 @@ TALER_MERCHANT_refund_increase_cancel (struct 
TALER_MERCHANT_RefundIncreaseOpera
   }
   TALER_curl_easy_post_finished (&rio->post_ctx);
   GNUNET_free (rio->url);
-  GNUNET_free (rio->post_ctx.json_enc);
   GNUNET_free (rio);
 }
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]