summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-08-07 19:31:49 +0200
committerChristian Grothoff <christian@grothoff.org>2021-08-07 19:31:49 +0200
commitc7aac576491b4b66eadeb9c60269192115f3b0b7 (patch)
tree4f4da44ca4ffefa3399912847beb828d65dd6176
parent1eba4f5e6290833a15a1a157eb7d079e08d45a4e (diff)
downloadexchange-c7aac576491b4b66eadeb9c60269192115f3b0b7.tar.gz
exchange-c7aac576491b4b66eadeb9c60269192115f3b0b7.tar.bz2
exchange-c7aac576491b4b66eadeb9c60269192115f3b0b7.zip
-fix #6986
-rw-r--r--src/exchange/taler-exchange-httpd_deposit.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/exchange/taler-exchange-httpd_deposit.c b/src/exchange/taler-exchange-httpd_deposit.c
index 398b3785..5ea48c20 100644
--- a/src/exchange/taler-exchange-httpd_deposit.c
+++ b/src/exchange/taler-exchange-httpd_deposit.c
@@ -376,6 +376,37 @@ TEH_handler_deposit (struct MHD_Connection *connection,
return MHD_YES; /* failure */
}
}
+ /* validate merchant's wire details (as far as we can) */
+ {
+ char *payto;
+ char *emsg;
+
+ payto = TALER_JSON_wire_to_payto (wire);
+ if (NULL == payto)
+ {
+ GNUNET_break_op (0);
+ GNUNET_JSON_parse_free (spec);
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_BAD_REQUEST,
+ TALER_EC_GENERIC_PARAMETER_MALFORMED,
+ "wire");
+ }
+ emsg = TALER_payto_validate (payto);
+ GNUNET_free (payto);
+ if (NULL != emsg)
+ {
+ MHD_RESULT ret;
+
+ GNUNET_break_op (0);
+ GNUNET_JSON_parse_free (spec);
+ ret = TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_BAD_REQUEST,
+ TALER_EC_GENERIC_PARAMETER_MALFORMED,
+ emsg);
+ GNUNET_free (emsg);
+ return ret;
+ }
+ }
deposit.receiver_wire_account = wire;
if (deposit.refund_deadline.abs_value_us > deposit.wire_deadline.abs_value_us)
{