address leaks.

This commit is contained in:
Marcello Stanisci 2018-03-21 14:24:57 +01:00
parent e364aa76e1
commit 7d4d3b3e9d
No known key found for this signature in database
GPG Key ID: 8D526861953F4C0F
2 changed files with 16 additions and 2 deletions

View File

@ -57,6 +57,11 @@ struct WithdrawState
*/ */
struct TALER_EXCHANGE_Handle *exchange; struct TALER_EXCHANGE_Handle *exchange;
/**
* Exchange base URL.
*/
char *exchange_url;
/** /**
* Interpreter state (during command). * Interpreter state (during command).
*/ */
@ -229,6 +234,7 @@ withdraw_cleanup (void *cls,
GNUNET_CRYPTO_rsa_signature_free (ws->sig.rsa_signature); GNUNET_CRYPTO_rsa_signature_free (ws->sig.rsa_signature);
ws->sig.rsa_signature = NULL; ws->sig.rsa_signature = NULL;
} }
GNUNET_free_non_null (ws->exchange_url);
GNUNET_free (ws); GNUNET_free (ws);
} }
@ -274,6 +280,7 @@ withdraw_traits (void *cls,
TALER_TESTING_interpreter_fail (ws->is); TALER_TESTING_interpreter_fail (ws->is);
return GNUNET_SYSERR; return GNUNET_SYSERR;
} }
ws->exchange_url = MAH_path_to_url (ws->exchange, "/");
struct TALER_TESTING_Trait traits[] = { struct TALER_TESTING_Trait traits[] = {
TALER_TESTING_make_trait_coin_priv (0 /* only one coin */, TALER_TESTING_make_trait_coin_priv (0 /* only one coin */,
@ -288,8 +295,7 @@ withdraw_traits (void *cls,
reserve_priv), reserve_priv),
TALER_TESTING_make_trait_amount_obj (0, TALER_TESTING_make_trait_amount_obj (0,
&ws->amount), &ws->amount),
TALER_TESTING_make_trait_url ( TALER_TESTING_make_trait_url (0, ws->exchange_url),
0, MAH_path_to_url (ws->exchange, "/")),
TALER_TESTING_trait_end () TALER_TESTING_trait_end ()
}; };

View File

@ -174,6 +174,7 @@ TALER_TESTING_prepare_exchange (const char *config_filename,
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to run `taler-auditor-sign`," "Failed to run `taler-auditor-sign`,"
" is your PATH correct?\n"); " is your PATH correct?\n");
GNUNET_free (signed_keys_out);
return GNUNET_NO; return GNUNET_NO;
} }
GNUNET_OS_process_wait (proc); GNUNET_OS_process_wait (proc);
@ -192,6 +193,8 @@ TALER_TESTING_prepare_exchange (const char *config_filename,
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to run `taler-exchange-dbinit`," "Failed to run `taler-exchange-dbinit`,"
" is your PATH correct?\n"); " is your PATH correct?\n");
GNUNET_free (signed_keys_out);
return GNUNET_NO; return GNUNET_NO;
} }
if (GNUNET_SYSERR == if (GNUNET_SYSERR ==
@ -201,6 +204,7 @@ TALER_TESTING_prepare_exchange (const char *config_filename,
{ {
GNUNET_break (0); GNUNET_break (0);
GNUNET_OS_process_destroy (proc); GNUNET_OS_process_destroy (proc);
GNUNET_free (signed_keys_out);
return GNUNET_SYSERR; return GNUNET_SYSERR;
} }
GNUNET_OS_process_destroy (proc); GNUNET_OS_process_destroy (proc);
@ -209,6 +213,7 @@ TALER_TESTING_prepare_exchange (const char *config_filename,
{ {
fprintf (stderr, fprintf (stderr,
"Failed to setup database\n"); "Failed to setup database\n");
GNUNET_free (signed_keys_out);
return GNUNET_NO; return GNUNET_NO;
} }
if ( (type != GNUNET_OS_PROCESS_EXITED) || if ( (type != GNUNET_OS_PROCESS_EXITED) ||
@ -217,8 +222,11 @@ TALER_TESTING_prepare_exchange (const char *config_filename,
fprintf (stderr, fprintf (stderr,
"Unexpected error running" "Unexpected error running"
" `taler-exchange-dbinit'!\n"); " `taler-exchange-dbinit'!\n");
GNUNET_free (signed_keys_out);
return GNUNET_SYSERR; return GNUNET_SYSERR;
} }
GNUNET_free (signed_keys_out);
return GNUNET_OK; return GNUNET_OK;
} }