I don't suppose NUM_ROWS and MAX_PLAYERS are the same value?

Also, could you share the fix for this? Is it safe to just allocate
m_bHasBeenSorted to size NUM_ROWS? Or something more involved?

david

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] On Behalf Of Richard
Taylor
Sent: Sunday, June 16, 2002 11:42 AM
To: [EMAIL PROTECTED]
Subject: [hlcoders] Re: Heap Corruption (or hl sdk bug)

This is a multi-part message in MIME format.
--
[ Picked text/plain from multipart/alternative ]
It appears that the heap corruption bug we've been looking for is in the
hl sdk, so the chances are that it's in your mod as well (unless there
is some sort of big conspiracy). Looking back the original problem only
occurred when running release builds on win98 machines. The actual bug
is only a small memory overwrite so when running a debug build it
doesn't go past the extra overrun buffer added by the crt debug dll.

Anyway in vgui_ScorePanel.h in the declaration of class ScorePanel there
are 3 arrays.

...
 int    m_iSortedRows[NUM_ROWS];
 int    m_iIsATeam[NUM_ROWS];
 bool    m_bHasBeenSorted[MAX_PLAYERS];
...

then in vgui_ScorePanel.cpp in void ScorePanel::Update() there is the
following code

...
 // Clear out sorts
 for (int i = 0; i < NUM_ROWS; i++)
 {
  m_iSortedRows[i] = 0;
  m_iIsATeam[i] = TEAM_NO;
  m_bHasBeenSorted[i] = false;
 }
...

This is obviously going to run right off the end of the classes
allocated storage and into the heap allocation list.

rich.

P.S. please contact me about my usual consultancy fee :P




--

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to