Closed Bug 4847 Opened 26 years ago Closed 25 years ago

UMR: nsParseMailMessageState::ParseHeaders()

Categories

(MailNews Core :: Backend, defect, P3)

Sun
Solaris
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: bruce, Assigned: scottputterman)

Details

As with the other reports, Solaris 2.6, gcc 2.7.2.3, pull/build from April 8, 1999. Was loading in local mailbox and displaying a message in it. Maybe this causes the NPR crash I was seeing (bug #4846)? **** Purify instrumented ./apprunner.pure (pid 20364) **** UMR: Uninitialized memory read (6 times): * This is occurring while in: PL_strchr [strchr.c:27] nsParseMailMessageState::ParseHeaders() [nsParseMailbox.cpp:658] nsParseMailMessageState::ParseFolderLine(const char*,unsigned int) [nsParseMailbox.cpp:431] nsMsgMailboxParser::HandleLine(char*,unsigned int) [nsParseMailbox.cpp:358] nsMsgLineBuffer::ConvertAndSendBuffer() [nsMsgLineBuffer.cpp:227] nsMsgLineBuffer::BufferInput(const char*,int) [nsMsgLineBuffer.cpp:160] nsMsgMailboxParser::ProcessMailboxInputStream(nsIURL*,nsIInputStream*,unsigned int) [nsParseMailbox.cpp:201] nsMsgMailboxParser::OnDataAvailable(nsIURL*,nsIInputStream*,unsigned int) [nsParseMailbox.cpp:45] nsMailboxProtocol::ReadFolderResponse(nsIInputStream*,unsigned int) [nsMailboxProtocol.cpp:455] nsMailboxProtocol::ProcessMailboxState(nsIURL*,nsIInputStream*,unsigned int) [nsMailboxProtocol.cpp:583] nsMailboxProtocol::OnDataAvailable(nsIURL*,nsIInputStream*,unsigned int) [nsMailboxProtocol.cpp:157] nsStreamListenerProxy::OnDataAvailable(nsIURL*,nsIInputStream*,unsigned int) [nsNetThread.cpp:811] stub_put_block(_NET_StreamClass*,const char*,int) [nsStubContext.cpp:827] net_read_file_chunk [mkfile.c:952] net_ProcessFile [mkfile.c:1323] NET_ProcessNet [mkgeturl.c:3355] NET_PollSockets [mkselect.c:298] nsNetlibService::NetPollSocketsCallback(nsITimer*,void*) [nsNetService.cpp:1277] TimerImpl::FireTimeout() [nsTimer.cpp:73] nsTimerExpired [nsTimer.cpp:189] g_timeout_dispatch [gmain.c:1147] g_main_dispatch [gmain.c:647] g_main_iterate [gmain.c:854] g_main_run [gmain.c:912] gtk_main [gtkmain.c:475] nsAppShell::Run() [nsAppShell.cpp:208] nsAppShellService::Run() [nsAppShellService.cpp:186] main [nsAppRunner.cpp:337] _start [crt1.o] * Reading 1 byte from 0x1224f43 in the heap. * Address 0x1224f43 is 387 bytes into a malloc'd block at 0x1224dc0 of 1024 bytes. * This block was allocated from: malloc [rtlib.o] PR_Malloc [prmem.c:38] nsByteArray::GrowBuffer(unsigned int,unsigned int) [nsMsgLineBuffer.cpp:46] nsByteArray::AppendBuffer(const char*,unsigned int) [nsMsgLineBuffer.cpp:66] nsParseMailMessageState::ParseFolderLine(const char*,unsigned int) [nsParseMailbox.cpp:447] nsMsgMailboxParser::HandleLine(char*,unsigned int) [nsParseMailbox.cpp:358] nsMsgLineBuffer::ConvertAndSendBuffer() [nsMsgLineBuffer.cpp:227] nsMsgLineBuffer::BufferInput(const char*,int) [nsMsgLineBuffer.cpp:160] nsMsgMailboxParser::ProcessMailboxInputStream(nsIURL*,nsIInputStream*,unsigned int) [nsParseMailbox.cpp:201] nsMsgMailboxParser::OnDataAvailable(nsIURL*,nsIInputStream*,unsigned int) [nsParseMailbox.cpp:45] nsMailboxProtocol::ReadFolderResponse(nsIInputStream*,unsigned int) [nsMailboxProtocol.cpp:455] nsMailboxProtocol::ProcessMailboxState(nsIURL*,nsIInputStream*,unsigned int) [nsMailboxProtocol.cpp:583] nsMailboxProtocol::OnDataAvailable(nsIURL*,nsIInputStream*,unsigned int) [nsMailboxProtocol.cpp:157] nsStreamListenerProxy::OnDataAvailable(nsIURL*,nsIInputStream*,unsigned int) [nsNetThread.cpp:811] stub_put_block(_NET_StreamClass*,const char*,int) [nsStubContext.cpp:827] net_read_file_chunk [mkfile.c:952] net_ProcessFile [mkfile.c:1323] NET_ProcessNet [mkgeturl.c:3355] NET_PollSockets [mkselect.c:298] nsNetlibService::NetPollSocketsCallback(nsITimer*,void*) [nsNetService.cpp:1277] TimerImpl::FireTimeout() [nsTimer.cpp:73] nsTimerExpired [nsTimer.cpp:189] g_timeout_dispatch [gmain.c:1147] g_main_dispatch [gmain.c:647] g_main_iterate [gmain.c:854] g_main_run [gmain.c:912] gtk_main [gtkmain.c:475] nsAppShell::Run() [nsAppShell.cpp:208] nsAppShellService::Run() [nsAppShellService.cpp:186] main [nsAppRunner.cpp:337]
Assignee: phil → bienvenu
Assignee: bienvenu → putterman
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
scott putterman fixed this already, I believe.
Yes, I checked in the fix on 4/12.
QA Contact: 4080 → 4421
Status: RESOLVED → VERIFIED
Based on code review with Scott: Scott changed char *buf_end = buf + m_headers.GetSize(); to char *buf_end = buf + m_headers.GetBufferPos(); GetSize retrives the full buffer size which can include garbage if the buffer is not completely filled. GetBufferPos() retrieve just the part of the buffer that is actually used plus a terminating zero character. Par
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.