-add safety checks against cmd type confusion

This commit is contained in:
Christian Grothoff 2022-07-05 13:19:04 +02:00
parent 822090e81e
commit 43662fbb6a
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC

View File

@ -459,6 +459,19 @@ reveal_cb (void *cls,
} }
/**
* Run the command.
*
* @param cls closure.
* @param cmd the command to execute.
* @param is the interpreter state.
*/
static void
melt_run (void *cls,
const struct TALER_TESTING_Command *cmd,
struct TALER_TESTING_Interpreter *is);
/** /**
* Run the command. * Run the command.
* *
@ -484,7 +497,7 @@ refresh_reveal_run (void *cls,
TALER_TESTING_interpreter_fail (rrs->is); TALER_TESTING_interpreter_fail (rrs->is);
return; return;
} }
// FIXME: use trait for 'rms'! GNUNET_assert (melt_cmd->run == &melt_run);
rms = melt_cmd->cls; rms = melt_cmd->cls;
{ {
struct TALER_ExchangeWithdrawValues alg_values[rms->num_fresh_coins]; struct TALER_ExchangeWithdrawValues alg_values[rms->num_fresh_coins];
@ -791,17 +804,15 @@ refresh_link_run (void *cls,
} }
/* find reserve_withdraw command */ /* find reserve_withdraw command */
GNUNET_assert (melt_cmd->run == &melt_run);
rms = melt_cmd->cls;
coin_cmd = TALER_TESTING_interpreter_lookup_command (rls->is,
rms->coin_reference);
if (NULL == coin_cmd)
{ {
// FIXME: use trait! GNUNET_break (0);
rms = melt_cmd->cls; TALER_TESTING_interpreter_fail (rls->is);
coin_cmd = TALER_TESTING_interpreter_lookup_command (rls->is, return;
rms->coin_reference);
if (NULL == coin_cmd)
{
GNUNET_break (0);
TALER_TESTING_interpreter_fail (rls->is);
return;
}
} }
const struct TALER_CoinSpendPrivateKeyP *coin_priv; const struct TALER_CoinSpendPrivateKeyP *coin_priv;
@ -863,19 +874,6 @@ refresh_link_cleanup (void *cls,
} }
/**
* Run the command.
*
* @param cls closure.
* @param cmd the command to execute.
* @param is the interpreter state.
*/
static void
melt_run (void *cls,
const struct TALER_TESTING_Command *cmd,
struct TALER_TESTING_Interpreter *is);
/** /**
* Task scheduled to re-try #melt_run. * Task scheduled to re-try #melt_run.
* *