summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-11-09 14:36:14 +0100
committerChristian Grothoff <christian@grothoff.org>2019-11-09 14:36:14 +0100
commitaf6293c5ef3272ad51567edb15901b7b6bfeab6b (patch)
tree66ebed6b500d05e1e565e0acbd7fa16b63e1c03a /src
parente22dcecc66b9915b6e1aafbcdc0e72e91248681c (diff)
downloadmerchant-af6293c5ef3272ad51567edb15901b7b6bfeab6b.tar.gz
merchant-af6293c5ef3272ad51567edb15901b7b6bfeab6b.tar.bz2
merchant-af6293c5ef3272ad51567edb15901b7b6bfeab6b.zip
clean up leaks, check URL construction worked
Diffstat (limited to 'src')
-rw-r--r--src/lib/merchant_api_proposal.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/lib/merchant_api_proposal.c b/src/lib/merchant_api_proposal.c
index de2a2281..920f08e9 100644
--- a/src/lib/merchant_api_proposal.c
+++ b/src/lib/merchant_api_proposal.c
@@ -393,16 +393,27 @@ TALER_MERCHANT_proposal_lookup (struct GNUNET_CURL_Context *ctx,
"nonce",
nonce_str,
NULL);
+ GNUNET_free_non_null (nonce_str);
+ if (NULL == plo->url)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Could not construct request URL. Is `%s' valid?\n",
+ backend_url);
+ GNUNET_free (plo);
+ return NULL;
+ }
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"looking up proposal from %s\n",
plo->url);
-
eh = curl_easy_init ();
if (CURLE_OK != curl_easy_setopt (eh,
CURLOPT_URL,
plo->url))
{
GNUNET_break (0);
+ curl_easy_cleanup (eh);
+ GNUNET_free (plo->url);
+ GNUNET_free (plo);
return NULL;
}
@@ -413,6 +424,8 @@ TALER_MERCHANT_proposal_lookup (struct GNUNET_CURL_Context *ctx,
plo)))
{
GNUNET_break (0);
+ GNUNET_free (plo->url);
+ GNUNET_free (plo);
return NULL;
}
return plo;