core: fix integrated addresses breaking with auto zero change

Zero change is sent to a random address, which confuses the code
which determines which key to use to encrypt the payment id.
Ignore zero amounts for this purpose, so the payment id gets
encrypted with the real destination's key.
This commit is contained in:
moneromooo-monero 2017-02-02 20:53:12 +00:00
parent da9174c8ee
commit b5cb8861c7
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3

View file

@ -443,6 +443,8 @@ namespace cryptonote
{ {
if (!memcmp(&destinations[n].addr, &sender_keys.m_account_address, sizeof(destinations[0].addr))) if (!memcmp(&destinations[n].addr, &sender_keys.m_account_address, sizeof(destinations[0].addr)))
continue; continue;
if (destinations[n].amount == 0)
continue;
if (memcmp(&destinations[n].addr, &destinations[0].addr, sizeof(destinations[0].addr))) if (memcmp(&destinations[n].addr, &destinations[0].addr, sizeof(destinations[0].addr)))
return null_pkey; return null_pkey;
} }