wallet_rpc_server: reject standalone short payment id in address book

This commit is contained in:
moneromooo-monero 2019-04-30 17:30:38 +00:00
parent 581994b61c
commit ccc1e311dc
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3

View file

@ -2805,20 +2805,20 @@ namespace tools
} }
crypto::hash long_payment_id; crypto::hash long_payment_id;
crypto::hash8 short_payment_id;
if (!wallet2::parse_long_payment_id(req.payment_id, payment_id)) if (!wallet2::parse_long_payment_id(req.payment_id, payment_id))
{ {
if (!wallet2::parse_short_payment_id(req.payment_id, info.payment_id)) if (!wallet2::parse_short_payment_id(req.payment_id, info.payment_id))
{ {
er.code = WALLET_RPC_ERROR_CODE_WRONG_PAYMENT_ID; er.code = WALLET_RPC_ERROR_CODE_WRONG_PAYMENT_ID;
er.message = "Payment id has invalid format: \"" + req.payment_id + "\", expected 16 or 64 character string"; er.message = "Payment id has invalid format: \"" + req.payment_id + "\", expected 64 character string";
return false; return false;
} }
else else
{ {
memcpy(payment_id.data, info.payment_id.data, 8); er.code = WALLET_RPC_ERROR_CODE_WRONG_PAYMENT_ID;
memset(payment_id.data + 8, 0, 24); er.message = "Payment id has invalid format: standalone short payment IDs are forbidden, they must be part of an integrated address";
return false;
} }
} }
} }