diff options
author | Machiavelli <machiavelli.trinity@gmail.com> | 2011-05-21 14:24:46 +0200 |
---|---|---|
committer | Machiavelli <machiavelli.trinity@gmail.com> | 2011-05-21 14:24:46 +0200 |
commit | 59c0670f442f6beb875c24cedd2bd8dba6fdd1f0 (patch) | |
tree | 21f51f9ee6e31b106f0bd674589553e9091eb430 /src/server/game/Mails/Mail.cpp | |
parent | c3778487f07752c425cef98fa496cda450d46f9b (diff) |
Core/DBLayer: Fix possible transaction deadlock in HandleMailReturnToSender opcode
Diffstat (limited to 'src/server/game/Mails/Mail.cpp')
-rwxr-xr-x | src/server/game/Mails/Mail.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/server/game/Mails/Mail.cpp b/src/server/game/Mails/Mail.cpp index a76b1020f46..17932d22aff 100755 --- a/src/server/game/Mails/Mail.cpp +++ b/src/server/game/Mails/Mail.cpp @@ -126,7 +126,7 @@ void MailDraft::deleteIncludedItems(SQLTransaction& trans, bool inDB /*= false*/ m_items.clear(); } -void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 receiver_guid) +void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 receiver_guid, SQLTransaction& trans) { Player *receiver = sObjectMgr->GetPlayer(MAKE_NEW_GUID(receiver_guid, 0, HIGHGUID_PLAYER)); @@ -134,8 +134,6 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 if (!receiver) rc_account = sObjectMgr->GetPlayerAccountIdByGUID(MAKE_NEW_GUID(receiver_guid, 0, HIGHGUID_PLAYER)); - SQLTransaction trans = CharacterDatabase.BeginTransaction(); - if (!receiver && !rc_account) // sender not exist { deleteIncludedItems(trans, true); @@ -168,7 +166,6 @@ void MailDraft::SendReturnToSender(uint32 sender_acc, uint32 sender_guid, uint32 // will delete item or place to receiver mail list SendMailTo(trans, MailReceiver(receiver, receiver_guid), MailSender(MAIL_NORMAL, sender_guid), MAIL_CHECK_MASK_RETURNED, deliver_delay); - CharacterDatabase.CommitTransaction(trans); } void MailDraft::SendMailTo(SQLTransaction& trans, MailReceiver const& receiver, MailSender const& sender, MailCheckMask checked, uint32 deliver_delay) |