diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-03-10 15:34:04 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-03-10 15:34:04 +0100 |
commit | 883c063f434cff70e427ae720fe8566b293a36f1 (patch) | |
tree | 793b7172ac6e39cf0ec60aa0d3df700f958c5df0 /src/lib/exchange_api_handle.c | |
parent | fc79dd233a124d7668012d61f0d040a49123eca8 (diff) |
tolerate recoup information not being present
Diffstat (limited to 'src/lib/exchange_api_handle.c')
-rw-r--r-- | src/lib/exchange_api_handle.c | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c index 3ec3e30bf..42f4e8163 100644 --- a/src/lib/exchange_api_handle.c +++ b/src/lib/exchange_api_handle.c @@ -1045,35 +1045,37 @@ decode_keys_json (const json_t *resp_obj, json_t *recoup_info; unsigned int index; - EXITIF (NULL == (recoup_array = - json_object_get (resp_obj, - "recoup"))); - EXITIF (JSON_ARRAY != json_typeof (recoup_array)); - - json_array_foreach (recoup_array, index, recoup_info) { - struct GNUNET_HashCode h_denom_pub; - struct GNUNET_JSON_Specification spec[] = { - GNUNET_JSON_spec_fixed_auto ("h_denom_pub", - &h_denom_pub), - GNUNET_JSON_spec_end () - }; - - EXITIF (GNUNET_OK != - GNUNET_JSON_parse (recoup_info, - spec, - NULL, NULL)); - for (unsigned int j = 0; - j<key_data->num_denom_keys; - j++) - { - if (0 == GNUNET_memcmp (&h_denom_pub, - &key_data->denom_keys[j].h_key)) + if (NULL != (recoup_array = + json_object_get (resp_obj, + "recoup"))) + { + EXITIF (JSON_ARRAY != json_typeof (recoup_array)); + + json_array_foreach (recoup_array, index, recoup_info) { + struct GNUNET_HashCode h_denom_pub; + struct GNUNET_JSON_Specification spec[] = { + GNUNET_JSON_spec_fixed_auto ("h_denom_pub", + &h_denom_pub), + GNUNET_JSON_spec_end () + }; + + EXITIF (GNUNET_OK != + GNUNET_JSON_parse (recoup_info, + spec, + NULL, NULL)); + for (unsigned int j = 0; + j<key_data->num_denom_keys; + j++) { - key_data->denom_keys[j].revoked = GNUNET_YES; - break; + if (0 == GNUNET_memcmp (&h_denom_pub, + &key_data->denom_keys[j].h_key)) + { + key_data->denom_keys[j].revoked = GNUNET_YES; + break; + } } - } - }; + }; + } } if (check_sig) |