diff options
Diffstat (limited to 'src/mintdb')
| -rw-r--r-- | src/mintdb/mintdb_plugin.c | 2 | ||||
| -rw-r--r-- | src/mintdb/plugin_mintdb_common.c | 33 | ||||
| -rw-r--r-- | src/mintdb/plugin_mintdb_postgres.c | 36 | 
3 files changed, 37 insertions, 34 deletions
diff --git a/src/mintdb/mintdb_plugin.c b/src/mintdb/mintdb_plugin.c index 2e8d206f..d6c33303 100644 --- a/src/mintdb/mintdb_plugin.c +++ b/src/mintdb/mintdb_plugin.c @@ -77,8 +77,10 @@ TALER_MINTDB_plugin_unload (struct TALER_MINTDB_Plugin *plugin)    if (NULL == plugin)      return;    lib_name = plugin->library_name; +#if SKIP    GNUNET_assert (NULL == GNUNET_PLUGIN_unload (lib_name,                                                 plugin)); +#endif    GNUNET_free (lib_name);  } diff --git a/src/mintdb/plugin_mintdb_common.c b/src/mintdb/plugin_mintdb_common.c index 99ff92ae..bbe104f6 100644 --- a/src/mintdb/plugin_mintdb_common.c +++ b/src/mintdb/plugin_mintdb_common.c @@ -127,19 +127,34 @@ common_free_melt_commitment (void *cls,    unsigned int i;    unsigned int k; -  GNUNET_free (mc->melts); -  for (i=0;i<mc->num_newcoins;i++) -    GNUNET_CRYPTO_rsa_public_key_free (mc->denom_pubs[i].rsa_public_key); -  GNUNET_free (mc->denom_pubs); -  for (k=0;k<TALER_CNC_KAPPA;k++) +  if (NULL != mc->melts) +  { +    for (i=0;i<mc->num_oldcoins;i++) +    { +      GNUNET_CRYPTO_rsa_signature_free (mc->melts[i].coin.denom_sig.rsa_signature); +      GNUNET_CRYPTO_rsa_public_key_free (mc->melts[i].coin.denom_pub.rsa_public_key); +    } +    GNUNET_free (mc->melts); +  } +  if (NULL != mc->denom_pubs)    {      for (i=0;i<mc->num_newcoins;i++) +      if (NULL != mc->denom_pubs[i].rsa_public_key) +        GNUNET_CRYPTO_rsa_public_key_free (mc->denom_pubs[i].rsa_public_key); +    GNUNET_free (mc->denom_pubs); +  } +  for (k=0;k<TALER_CNC_KAPPA;k++) +  { +    if (NULL != mc->commit_coins[k])      { -      GNUNET_free (mc->commit_coins[k][i].refresh_link); -      GNUNET_free (mc->commit_coins[k][i].coin_ev); +      for (i=0;i<mc->num_newcoins;i++) +      { +        GNUNET_free (mc->commit_coins[k][i].refresh_link); +        GNUNET_free (mc->commit_coins[k][i].coin_ev); +      } +      GNUNET_free (mc->commit_coins[k]);      } -    GNUNET_free (mc->commit_coins[k]); -    GNUNET_free (mc->commit_links[k]); +    GNUNET_free_non_null (mc->commit_links[k]);    }    GNUNET_free (mc);  } diff --git a/src/mintdb/plugin_mintdb_postgres.c b/src/mintdb/plugin_mintdb_postgres.c index 62110802..1347875e 100644 --- a/src/mintdb/plugin_mintdb_postgres.c +++ b/src/mintdb/plugin_mintdb_postgres.c @@ -2273,12 +2273,15 @@ get_known_coin (void *cls,      return GNUNET_YES;    {      struct TALER_PQ_ResultSpec rs[] = { -      TALER_PQ_result_spec_rsa_public_key ("denom_pub", &coin_info->denom_pub.rsa_public_key), -      TALER_PQ_result_spec_rsa_signature ("denom_sig", &coin_info->denom_sig.rsa_signature), +      TALER_PQ_result_spec_rsa_public_key ("denom_pub", +                                           &coin_info->denom_pub.rsa_public_key), +      TALER_PQ_result_spec_rsa_signature ("denom_sig", +                                          &coin_info->denom_sig.rsa_signature),        TALER_PQ_result_spec_end      }; -    if (GNUNET_OK != TALER_PQ_extract_result (result, rs, 0)) +    if (GNUNET_OK != +        TALER_PQ_extract_result (result, rs, 0))      {        PQclear (result);        GNUNET_break (0); @@ -2428,7 +2431,11 @@ postgres_get_refresh_melt (void *cls,                                     &coin))      return GNUNET_SYSERR;    if (NULL == melt) +  { +    GNUNET_CRYPTO_rsa_signature_free (coin.denom_sig.rsa_signature); +    GNUNET_CRYPTO_rsa_public_key_free (coin.denom_pub.rsa_public_key);      return GNUNET_OK; +  }    melt->coin = coin;    melt->coin_sig = coin_sig;    melt->session_hash = *session_hash; @@ -2974,28 +2981,7 @@ postgres_get_melt_commitment (void *cls,    return mc;   cleanup: -  GNUNET_free_non_null (mc->melts); -  if (NULL != mc->denom_pubs) -  { -    for (i=0;i<(unsigned int) mc->num_newcoins;i++) -      if (NULL != mc->denom_pubs[i].rsa_public_key) -        GNUNET_CRYPTO_rsa_public_key_free (mc->denom_pubs[i].rsa_public_key); -    GNUNET_free (mc->denom_pubs); -  } -  for (cnc_index=0;cnc_index<TALER_CNC_KAPPA;cnc_index++) -  { -    if (NULL != mc->commit_coins[cnc_index]) -    { -      for (i=0;i<(unsigned int) mc->num_newcoins;i++) -      { -        GNUNET_free_non_null (mc->commit_coins[cnc_index][i].refresh_link); -        GNUNET_free_non_null (mc->commit_coins[cnc_index][i].coin_ev); -      } -      GNUNET_free (mc->commit_coins[cnc_index]); -    } -    GNUNET_free_non_null (mc->commit_links[cnc_index]); -  } -  GNUNET_free (mc); +  common_free_melt_commitment (cls, mc);    return NULL;  }  | 
