diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-11-03 20:51:03 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-11-03 20:51:03 +0100 |
commit | b83de81a70b580045540ed4db5627aff5edc682c (patch) | |
tree | 7d04cd7106b10b597138ec7a0a5e103d978c0b6c /src/server/game/Handlers/AuctionHouseHandler.cpp | |
parent | 780e8884043242aecd6cdf14fa0974ba0b923a2d (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.cpp | 6 |
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 { |