summaryrefslogtreecommitdiff
path: root/src/exchange/taler-exchange-httpd_management_post_keys.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-07-21 18:51:05 +0200
committerChristian Grothoff <christian@grothoff.org>2021-07-21 18:51:05 +0200
commit5828dfad1df1ff9c4f2cec18a9a85c87f7364930 (patch)
tree078f1f13310b32eff941d4bb7caf5fda2f352a8f /src/exchange/taler-exchange-httpd_management_post_keys.c
parent3721780f16f61727e0f29505a32c4aa43b53ed51 (diff)
downloadexchange-5828dfad1df1ff9c4f2cec18a9a85c87f7364930.tar.gz
exchange-5828dfad1df1ff9c4f2cec18a9a85c87f7364930.tar.bz2
exchange-5828dfad1df1ff9c4f2cec18a9a85c87f7364930.zip
fix NPE on key not found
Diffstat (limited to 'src/exchange/taler-exchange-httpd_management_post_keys.c')
-rw-r--r--src/exchange/taler-exchange-httpd_management_post_keys.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/exchange/taler-exchange-httpd_management_post_keys.c b/src/exchange/taler-exchange-httpd_management_post_keys.c
index a4e8ac35f..4fb65d414 100644
--- a/src/exchange/taler-exchange-httpd_management_post_keys.c
+++ b/src/exchange/taler-exchange-httpd_management_post_keys.c
@@ -147,17 +147,29 @@ add_keys (void *cls,
}
if (0 == qs)
{
- if (GNUNET_OK !=
- TEH_keys_load_fees (&akc->d_sigs[i].h_denom_pub,
- &denom_pub,
- &meta))
+ enum GNUNET_GenericReturnValue rv;
+
+ rv = TEH_keys_load_fees (&akc->d_sigs[i].h_denom_pub,
+ &denom_pub,
+ &meta);
+ switch (rv)
{
+ case GNUNET_SYSERR:
+ *mhd_ret = TALER_MHD_reply_with_error (
+ connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION,
+ GNUNET_h2s (&akc->d_sigs[i].h_denom_pub));
+ return GNUNET_DB_STATUS_HARD_ERROR;
+ case GNUNET_NO:
*mhd_ret = TALER_MHD_reply_with_error (
connection,
MHD_HTTP_NOT_FOUND,
TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN,
GNUNET_h2s (&akc->d_sigs[i].h_denom_pub));
return GNUNET_DB_STATUS_HARD_ERROR;
+ case GNUNET_OK:
+ break;
}
}
else