CG1Neighbour::ProcessPackets() crash

Discuss Shareaza bugs.
Forum rules
Home | Wiki | Rules

CG1Neighbour::ProcessPackets() crash

Postby raspopov » 22 Mar 2014 08:35

I need help in this bug research: ticket 214.
User avatar
raspopov
Project Admin
 
Posts: 944
Joined: 13 Jun 2009 12:30
Location: Russian Federation

Re: CG1Neighbour::ProcessPackets() crash

Postby ivan386 » 28 Mar 2014 08:17

Code: Select all
BOOL CG1Neighbour::ProcessPackets()
{
   CLockedBuffer pInputLocked( GetInput() );

   // Point pInput at the buffer that has readable data from the remote computer
   CBuffer* pInput = m_pZInput ? m_pZInput : pInputLocked;
   
   if ( ProcessPackets( pInput ) )
      return TRUE;

   // Something in the loop set bSuccess to false
   Close( 0 );   // Close the connection to this remote computer
>   return FALSE; // Report error
}


Code: Select all
    <eax>0x0063006C</eax>
...
    <eip>0x0063006C</eip>


Судя по регистрам указатель на следующую команду улетает в дальние дали. К этому моменту объект в который возвращается управление уничтожен командой Close( 0 ).

Видимо что то повреждает стек в котором записан адрес возврата.

Этот баг мне попадался пару раз но больше я его не видел.
data:application/exe,%B4%09%BA%0D%01%CD%21%B4%08%CD%21%CD%20Hello,World!$
ivan386
 
Posts: 260
Joined: 17 Jun 2009 14:08

Re: CG1Neighbour::ProcessPackets() crash

Postby raspopov » 28 Mar 2014 12:48

Да, это очевидно что стек затёрт чём-то, потому так сложно определить, где именно был вылет... За эту версию говорит и тот факт, что сам объект CG2Neighbour (я уверен, что других объектов быть не может т.к. включён только протокол G2) уже удалён или повреждён так сильно, что вызов виртуальной функции OnRead() приводит к "вызову" (или так разворачивается повреждённый стек отладчиком) не в CG2Neighbour::OnRead(), а CG1Neighbour::OnRead().
User avatar
raspopov
Project Admin
 
Posts: 944
Joined: 13 Jun 2009 12:30
Location: Russian Federation

Re: CG1Neighbour::ProcessPackets() crash

Postby raspopov » 30 Mar 2014 06:20

Ну, как я и предполагал, я затупил ... :lol: Всё указывало на использование уже удалённого объекта, но я не верил и не смог увидеть, что это явно происходит 10 строчками ниже...
User avatar
raspopov
Project Admin
 
Posts: 944
Joined: 13 Jun 2009 12:30
Location: Russian Federation


Return to Bugs

Who is online

Users browsing this forum: No registered users and 1 guest

cron