Sorry for the delay ... can you still reproduce this crash?

Yes, I can. But I have new informations: the pop3 server I used was buggy: it sent twice some lines in the answer to the UIDL command. In the function GetList (nsPop3Protocol.cpp) m_listpos is incremented at each line of the UIDL answer. As this bug is due to a grave bug in the server, I don't know if you will want to correct it. If you want to do so, it is an easy thing:

As m_pop3ConData is initialized to 0 by PR_NEWZAP, changing

  if (token)
  {
    msg_num = atol(token);
    m_listpos++;

    if(m_listpos <= m_pop3ConData->number_of_messages && m_listpos > 0)
    {
      token = nsCRT::strtok(newStr, " ", &newStr);
      if (token)
      {
        m_pop3ConData->msg_info[m_listpos-1].size = atol(token);
        m_pop3ConData->msg_info[m_listpos-1].msgnum = msg_num;
      }
    }
  }

into

  if (token)
  {
    msg_num = atol(token);
    if(!m_pop3ConData->msg_info[m_listpos-1].msgnum)
    {
      m_listpos++;

      if(m_listpos <= m_pop3ConData->number_of_messages && m_listpos > 0)
      {
        token = nsCRT::strtok(newStr, " ", &newStr);
        if (token)
        {
          m_pop3ConData->msg_info[m_listpos-1].size = atol(token);
          m_pop3ConData->msg_info[m_listpos-1].msgnum = msg_num;
        }
      }
    }
  }

would solve the problem.
Regards,
Nicolas



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to