diff options
author | Özgür Kesim <oec-taler@kesim.org> | 2023-06-05 09:18:35 +0200 |
---|---|---|
committer | Özgür Kesim <oec-taler@kesim.org> | 2023-06-05 09:18:35 +0200 |
commit | 98b51edf496cdc14974690c9809f665f14858977 (patch) | |
tree | eb48f666852c8df8b940d001bc0b0ef644df4a55 /src/exchange/taler-exchange-httpd_management_extensions.c | |
parent | fb5bc18c588832747dfe299f9df1beb6645cf686 (diff) | |
parent | 8cc1edfe0aa77d3091f19aa87d06bb45c74b0128 (diff) |
Merge branch 'master' into age-withdraw
Diffstat (limited to 'src/exchange/taler-exchange-httpd_management_extensions.c')
-rw-r--r-- | src/exchange/taler-exchange-httpd_management_extensions.c | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/src/exchange/taler-exchange-httpd_management_extensions.c b/src/exchange/taler-exchange-httpd_management_extensions.c index d5841a3c..3b24bace 100644 --- a/src/exchange/taler-exchange-httpd_management_extensions.c +++ b/src/exchange/taler-exchange-httpd_management_extensions.c @@ -145,7 +145,7 @@ set_extensions (void *cls, static enum GNUNET_GenericReturnValue verify_extensions_from_json ( - json_t *extensions, + const json_t *extensions, struct SetExtensionsContext *sec) { const char*name; @@ -160,7 +160,7 @@ verify_extensions_from_json ( sec->extensions = GNUNET_new_array (sec->num_extensions, struct Extension); - json_object_foreach (extensions, name, manifest) + json_object_foreach ((json_t *) extensions, name, manifest) { int critical = 0; json_t *config; @@ -200,11 +200,11 @@ TEH_handler_management_post_extensions ( const json_t *root) { MHD_RESULT ret; - json_t *extensions; + const json_t *extensions; struct SetExtensionsContext sec = {0}; struct GNUNET_JSON_Specification top_spec[] = { - GNUNET_JSON_spec_json ("extensions", - &extensions), + GNUNET_JSON_spec_object_const ("extensions", + &extensions), GNUNET_JSON_spec_fixed_auto ("extensions_sig", &sec.extensions_sig), GNUNET_JSON_spec_end () @@ -223,31 +223,19 @@ TEH_handler_management_post_extensions ( return MHD_YES; /* failure */ } - /* Ensure we have an object */ - if ((! json_is_object (extensions)) && - (! json_is_null (extensions))) - { - GNUNET_JSON_parse_free (top_spec); - return TALER_MHD_reply_with_error ( - connection, - MHD_HTTP_BAD_REQUEST, - TALER_EC_GENERIC_PARAMETER_MALFORMED, - "invalid object"); - } - /* Verify the signature */ { struct TALER_ExtensionManifestsHashP h_manifests; if (GNUNET_OK != - TALER_JSON_extensions_manifests_hash (extensions, &h_manifests) || + TALER_JSON_extensions_manifests_hash (extensions, + &h_manifests) || GNUNET_OK != TALER_exchange_offline_extension_manifests_hash_verify ( &h_manifests, &TEH_master_public_key, &sec.extensions_sig)) { - GNUNET_JSON_parse_free (top_spec); return TALER_MHD_reply_with_error ( connection, MHD_HTTP_BAD_REQUEST, @@ -263,7 +251,6 @@ TEH_handler_management_post_extensions ( if (GNUNET_OK != verify_extensions_from_json (extensions, &sec)) { - GNUNET_JSON_parse_free (top_spec); return TALER_MHD_reply_with_error ( connection, MHD_HTTP_BAD_REQUEST, @@ -306,7 +293,6 @@ CLEANUP: } } GNUNET_free (sec.extensions); - GNUNET_JSON_parse_free (top_spec); return ret; } |