gnunet-svn
[Top][All Lists]
Advanced

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

[taler-merchant] branch master updated: close misc leaks, check for URL


From: gnunet
Subject: [taler-merchant] branch master updated: close misc leaks, check for URL build errors
Date: Sat, 09 Nov 2019 14:51:52 +0100

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 aa44ae2  close misc leaks, check for URL build errors
aa44ae2 is described below

commit aa44ae235b484e09dbb49dfdb961a3f576205ca0
Author: Christian Grothoff <address@hidden>
AuthorDate: Sat Nov 9 14:51:47 2019 +0100

    close misc leaks, check for URL build errors
---
 src/lib/merchant_api_check_payment.c     | 15 +++++++++++++++
 src/lib/merchant_api_history.c           | 10 +++++++---
 src/lib/merchant_api_pay.c               | 13 +++++++++++--
 src/lib/merchant_api_poll_payment.c      |  7 +++++++
 src/lib/merchant_api_proposal.c          |  4 ++--
 src/lib/merchant_api_refund.c            | 11 ++++++++++-
 src/lib/merchant_api_tip_authorize.c     |  9 +++++++++
 src/lib/merchant_api_tip_pickup.c        | 10 +++++++++-
 src/lib/merchant_api_tip_query.c         | 10 +++++++++-
 src/lib/merchant_api_track_transaction.c | 13 +++++++++++--
 src/lib/merchant_api_track_transfer.c    |  7 +++++++
 11 files changed, 97 insertions(+), 12 deletions(-)

diff --git a/src/lib/merchant_api_check_payment.c 
b/src/lib/merchant_api_check_payment.c
index 4a9e70e..c4c07ae 100644
--- a/src/lib/merchant_api_check_payment.c
+++ b/src/lib/merchant_api_check_payment.c
@@ -225,6 +225,13 @@ TALER_MERCHANT_check_payment (struct GNUNET_CURL_Context 
*ctx,
                              (0 != ts) ? "timeout" : NULL,
                              timeout_s,
                              NULL);
+  if (NULL == cpo->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    GNUNET_free (cpo);
+    return NULL;
+  }
   GNUNET_free (timeout_s);
   eh = curl_easy_init ();
   if (CURLE_OK != curl_easy_setopt (eh,
@@ -232,6 +239,9 @@ TALER_MERCHANT_check_payment (struct GNUNET_CURL_Context 
*ctx,
                                     cpo->url))
   {
     GNUNET_break (0);
+    curl_easy_cleanup (eh);
+    GNUNET_free (cpo->url);
+    GNUNET_free (cpo);
     return NULL;
   }
   if (CURLE_OK != curl_easy_setopt (eh,
@@ -239,6 +249,9 @@ TALER_MERCHANT_check_payment (struct GNUNET_CURL_Context 
*ctx,
                                     tlong))
   {
     GNUNET_break (0);
+    curl_easy_cleanup (eh);
+    GNUNET_free (cpo->url);
+    GNUNET_free (cpo);
     return NULL;
   }
 
@@ -252,6 +265,8 @@ TALER_MERCHANT_check_payment (struct GNUNET_CURL_Context 
*ctx,
                                                cpo)))
   {
     GNUNET_break (0);
+    GNUNET_free (cpo->url);
+    GNUNET_free (cpo);
     return NULL;
   }
   return cpo;
diff --git a/src/lib/merchant_api_history.c b/src/lib/merchant_api_history.c
index 726204c..c00cfa8 100644
--- a/src/lib/merchant_api_history.c
+++ b/src/lib/merchant_api_history.c
@@ -178,12 +178,18 @@ TALER_MERCHANT_history2 (struct GNUNET_CURL_Context *ctx,
   CURL *eh;
   char *base;
 
+  base = TALER_url_join (backend_url, "history", NULL);
+  if (NULL == base)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    return NULL;
+  }
   ho = GNUNET_new (struct TALER_MERCHANT_HistoryOperation);
   ho->ctx = ctx;
   ho->cb = history_cb;
   ho->cb_cls = history_cb_cls;
   seconds = date.abs_value_us / 1000LL / 1000LL;
-  base = TALER_url_join (backend_url, "history", NULL);
 
   if (GNUNET_YES == use_default_start)
     GNUNET_asprintf (&ho->url,
@@ -198,8 +204,6 @@ TALER_MERCHANT_history2 (struct GNUNET_CURL_Context *ctx,
                      seconds,
                      delta,
                      start);
-
-
   GNUNET_free (base);
   eh = curl_easy_init ();
   if (CURLE_OK != curl_easy_setopt (eh,
diff --git a/src/lib/merchant_api_pay.c b/src/lib/merchant_api_pay.c
index 174b0c6..cf25337 100644
--- a/src/lib/merchant_api_pay.c
+++ b/src/lib/merchant_api_pay.c
@@ -522,7 +522,7 @@ request_pay_generic
                                &pc->amount_without_fee))
     {
       /* Integer underflow, fee larger than total amount?
-   This should not happen (client violated API!) */
+         This should not happen (client violated API!) */
       GNUNET_break (0);
       json_decref (j_coins);
       return NULL;
@@ -599,6 +599,14 @@ request_pay_generic
   ph->pay_cb = pay_cb;
   ph->pay_cb_cls = pay_cb_cls;
   ph->url = TALER_url_join (merchant_url, "pay", NULL);
+  if (NULL == ph->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    json_decref (pay_obj);
+    GNUNET_free (ph);
+    return NULL;
+  }
   ph->num_coins = num_coins;
   ph->coins = GNUNET_new_array (num_coins,
                                 struct TALER_MERCHANT_PaidCoin);
@@ -613,6 +621,7 @@ request_pay_generic
                                          pay_obj))
   {
     GNUNET_break (0);
+    json_decref (pay_obj);
     GNUNET_free (ph);
     return NULL;
   }
@@ -724,7 +733,7 @@ prepare_pay_generic (struct GNUNET_CURL_Context *ctx,
                                &coin->amount_without_fee))
     {
       /* Integer underflow, fee larger than total amount?
-   This should not happen (client violated API!) */
+         This should not happen (client violated API!) */
       GNUNET_break (0);
       return NULL;
     }
diff --git a/src/lib/merchant_api_poll_payment.c 
b/src/lib/merchant_api_poll_payment.c
index af44d2b..4c819a2 100644
--- a/src/lib/merchant_api_poll_payment.c
+++ b/src/lib/merchant_api_poll_payment.c
@@ -250,6 +250,13 @@ TALER_MERCHANT_poll_payment (struct GNUNET_CURL_Context 
*ctx,
                              NULL);
   GNUNET_free (h_contract_s);
   GNUNET_free (timeout_s);
+  if (NULL == cpo->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    GNUNET_free (cpo);
+    return NULL;
+  }
   eh = curl_easy_init ();
   if (CURLE_OK != curl_easy_setopt (eh,
                                     CURLOPT_URL,
diff --git a/src/lib/merchant_api_proposal.c b/src/lib/merchant_api_proposal.c
index 920f08e..72a603a 100644
--- a/src/lib/merchant_api_proposal.c
+++ b/src/lib/merchant_api_proposal.c
@@ -238,6 +238,7 @@ TALER_MERCHANT_order_put
                                          req))
   {
     GNUNET_break (0);
+    json_decref (req);
     GNUNET_free (po);
     return NULL;
   }
@@ -397,8 +398,7 @@ TALER_MERCHANT_proposal_lookup (struct GNUNET_CURL_Context 
*ctx,
   if (NULL == plo->url)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Could not construct request URL. Is `%s' valid?\n",
-                backend_url);
+                "Could not construct request URL.\n");
     GNUNET_free (plo);
     return NULL;
   }
diff --git a/src/lib/merchant_api_refund.c b/src/lib/merchant_api_refund.c
index 19b39e6..3c079ce 100644
--- a/src/lib/merchant_api_refund.c
+++ b/src/lib/merchant_api_refund.c
@@ -212,6 +212,14 @@ TALER_MERCHANT_refund_increase (struct GNUNET_CURL_Context 
*ctx,
   rio->cb = cb;
   rio->cb_cls = cb_cls;
   rio->url = TALER_url_join (backend_url, "refund", NULL);
+  if (NULL == rio->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    GNUNET_free (rio);
+    return NULL;
+  }
+
   req = json_pack ("{s:o, s:s, s:s}",
                    "refund", TALER_JSON_from_amount (refund),
                    "order_id", order_id,
@@ -223,10 +231,11 @@ TALER_MERCHANT_refund_increase (struct 
GNUNET_CURL_Context *ctx,
                                          req))
   {
     GNUNET_break (0);
+    json_decref (req);
+    GNUNET_free (rio->url);
     GNUNET_free (rio);
     return NULL;
   }
-
   json_decref (req);
 
   GNUNET_assert (CURLE_OK == curl_easy_setopt (eh,
diff --git a/src/lib/merchant_api_tip_authorize.c 
b/src/lib/merchant_api_tip_authorize.c
index 22fd329..e1b21da 100644
--- a/src/lib/merchant_api_tip_authorize.c
+++ b/src/lib/merchant_api_tip_authorize.c
@@ -203,6 +203,13 @@ TALER_MERCHANT_tip_authorize (struct GNUNET_CURL_Context 
*ctx,
   tao->cb = authorize_cb;
   tao->cb_cls = authorize_cb_cls;
   tao->url = TALER_url_join (backend_url, "tip-authorize", NULL);
+  if (NULL == tao->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    GNUNET_free (tao);
+    return NULL;
+  }
   te_obj = json_pack ("{"
                       " s:o," /* amount */
                       " s:s," /* justification */
@@ -227,6 +234,8 @@ TALER_MERCHANT_tip_authorize (struct GNUNET_CURL_Context 
*ctx,
                                          te_obj))
   {
     GNUNET_break (0);
+    json_decref (te_obj);
+    GNUNET_free (tao->url);
     GNUNET_free (tao);
     return NULL;
   }
diff --git a/src/lib/merchant_api_tip_pickup.c 
b/src/lib/merchant_api_tip_pickup.c
index 12b08f4..9473a8a 100644
--- a/src/lib/merchant_api_tip_pickup.c
+++ b/src/lib/merchant_api_tip_pickup.c
@@ -290,16 +290,24 @@ TALER_MERCHANT_tip_pickup (struct GNUNET_CURL_Context 
*ctx,
   tpo->url = TALER_url_join (backend_url,
                              "tip-pickup",
                              NULL);
+  if (NULL == tpo->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    json_decref (tp_obj);
+    GNUNET_free (tpo);
+    return NULL;
+  }
   eh = curl_easy_init ();
   if (GNUNET_OK != TALER_curl_easy_post (&tpo->post_ctx,
                                          eh,
                                          tp_obj))
   {
     GNUNET_break (0);
+    json_decref (tp_obj);
     GNUNET_free (tpo);
     return NULL;
   }
-
   json_decref (tp_obj);
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
diff --git a/src/lib/merchant_api_tip_query.c b/src/lib/merchant_api_tip_query.c
index 8e3600d..d2a98a9 100644
--- a/src/lib/merchant_api_tip_query.c
+++ b/src/lib/merchant_api_tip_query.c
@@ -202,8 +202,16 @@ TALER_MERCHANT_tip_query (struct GNUNET_CURL_Context *ctx,
   tqo->ctx = ctx;
   tqo->cb = query_cb;
   tqo->cb_cls = query_cb_cls;
-  tqo->url = TALER_url_join (backend_url, "tip-query",
+  tqo->url = TALER_url_join (backend_url,
+                             "tip-query",
                              NULL);
+  if (NULL == tqo->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    GNUNET_free (tqo);
+    return NULL;
+  }
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO,
               "Requesting URL '%s'\n",
diff --git a/src/lib/merchant_api_track_transaction.c 
b/src/lib/merchant_api_track_transaction.c
index aa72962..6b1144d 100644
--- a/src/lib/merchant_api_track_transaction.c
+++ b/src/lib/merchant_api_track_transaction.c
@@ -154,8 +154,17 @@ TALER_MERCHANT_track_transaction (struct 
GNUNET_CURL_Context *ctx,
   tdo->ctx = ctx;
   tdo->cb = track_transaction_cb;
   tdo->cb_cls = track_transaction_cb_cls;
-  tdo->url = TALER_url_join (backend_url, "track/transaction",
-                             "order_id", order_id, NULL);
+  tdo->url = TALER_url_join (backend_url,
+                             "track/transaction",
+                             "order_id", order_id,
+                             NULL);
+  if (NULL == tdo->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    GNUNET_free (tdo);
+    return NULL;
+  }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Requesting URL '%s'\n",
               tdo->url);
diff --git a/src/lib/merchant_api_track_transfer.c 
b/src/lib/merchant_api_track_transfer.c
index 791d5b8..4122b0b 100644
--- a/src/lib/merchant_api_track_transfer.c
+++ b/src/lib/merchant_api_track_transfer.c
@@ -254,6 +254,13 @@ TALER_MERCHANT_track_transfer (struct GNUNET_CURL_Context 
*ctx,
                              "wire_method", wire_method,
                              NULL);
   GNUNET_free (wtid_str);
+  if (NULL == tdo->url)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Could not construct request URL.\n");
+    GNUNET_free (tdo);
+    return NULL;
+  }
   eh = curl_easy_init ();
   GNUNET_assert (CURLE_OK ==
                  curl_easy_setopt (eh,

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



reply via email to

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