aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/AuctionHouseHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-11-03 20:51:03 +0100
committerShauren <shauren.trinity@gmail.com>2024-11-03 20:51:03 +0100
commitb83de81a70b580045540ed4db5627aff5edc682c (patch)
tree7d04cd7106b10b597138ec7a0a5e103d978c0b6c /src/server/game/Handlers/AuctionHouseHandler.cpp
parent780e8884043242aecd6cdf14fa0974ba0b923a2d (diff)
Core/AuctionHouse: Fixed use after free
Closes #30128
Diffstat (limited to 'src/server/game/Handlers/AuctionHouseHandler.cpp')
-rw-r--r--src/server/game/Handlers/AuctionHouseHandler.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/server/game/Handlers/AuctionHouseHandler.cpp b/src/server/game/Handlers/AuctionHouseHandler.cpp
index f87e58366b8..3c9d56ef87e 100644
--- a/src/server/game/Handlers/AuctionHouseHandler.cpp
+++ b/src/server/game/Handlers/AuctionHouseHandler.cpp
@@ -438,10 +438,10 @@ void WorldSession::HandleAuctionPlaceBid(WorldPackets::AuctionHouse::AuctionPlac
if (canBuyout && placeBid.BidAmount == auction->BuyoutOrUnitPrice)
{
// buyout
- auctionHouse->SendAuctionSold(auction, nullptr, trans);
- auctionHouse->SendAuctionWon(auction, player, trans);
+ std::map<uint32, AuctionPosting>::node_type removedAuctionNode = auctionHouse->RemoveAuction(trans, auction);
- auctionHouse->RemoveAuction(trans, auction);
+ auctionHouse->SendAuctionSold(&removedAuctionNode.mapped(), nullptr, trans);
+ auctionHouse->SendAuctionWon(&removedAuctionNode.mapped(), player, trans);
}
else
{