aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.h
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-06-22 00:42:31 +0200
committerMachiavelli <none@none>2010-06-22 00:42:31 +0200
commiteefe75a31f58c24ec471aa8cd9502fc2b2dfb95b (patch)
tree084b8faffd1b727074003a029ad53ed1fabb2614 /src/server/game/Groups/Group.h
parent4e361d0d9b339dde22a1edd7cc9ce5a33cb2f9f0 (diff)
Fix possible bug occuring during shuffling of raid subgroups, and prevent client side exploit. Author: Vladimir.
--HG-- branch : trunk
Diffstat (limited to 'src/server/game/Groups/Group.h')
-rw-r--r--src/server/game/Groups/Group.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Groups/Group.h b/src/server/game/Groups/Group.h
index 808de417b79..8ec44c53b02 100644
--- a/src/server/game/Groups/Group.h
+++ b/src/server/game/Groups/Group.h
@@ -33,6 +33,7 @@
#define MAXGROUPSIZE 5
#define MAXRAIDSIZE 40
+#define MAX_RAID_SUBGROUPS MAXRAIDSIZE/MAXGROUPSIZE
#define TARGETICONCOUNT 8
enum RollVote
@@ -260,7 +261,7 @@ class Group
{
member_citerator mslot = _getMemberCSlot(guid);
if (mslot == m_memberSlots.end())
- return (MAXRAIDSIZE/MAXGROUPSIZE+1);
+ return (MAX_RAID_SUBGROUPS+1);
return mslot->group;
}
@@ -381,9 +382,9 @@ class Group
{
// Sub group counters initialization
if (!m_subGroupsCounts)
- m_subGroupsCounts = new uint8[MAXRAIDSIZE / MAXGROUPSIZE];
+ m_subGroupsCounts = new uint8[MAX_RAID_SUBGROUPS];
- memset((void*)m_subGroupsCounts, 0, (MAXRAIDSIZE / MAXGROUPSIZE)*sizeof(uint8));
+ memset((void*)m_subGroupsCounts, 0, (MAX_RAID_SUBGROUPS)*sizeof(uint8));
for (member_citerator itr = m_memberSlots.begin(); itr != m_memberSlots.end(); ++itr)
++m_subGroupsCounts[itr->group];