Closed
Bug 109501
Opened 24 years ago
Closed 23 years ago
Memory leak of 2048 bytes from 1 block allocated in PR_Malloc
Categories
(Core :: Networking, defect)
Tracking
()
VERIFIED
WORKSFORME
mozilla0.9.9
People
(Reporter: stephend, Assigned: neeti)
Details
Windows 2000, just reading 2 IMAP messages with 2 JPG attachments.
[W] MLK: Memory leak of 2048 bytes from 1 block allocated in PR_Malloc
Distribution of leaked blocks
Allocation location
malloc [msvcrt.DLL]
PR_Malloc [nspr4.dll]
nsSegmentedBuffer::AppendNewSegment(void) [nsSegmentedBuffer.cpp:117]
mSegmentArrayCount = newArraySize;
}
=> char* seg = (char*)mSegAllocator->Alloc(mSegmentSize);
if (seg == nsnull) {
return nsnull;
}
nsPipe::GetWriteSegment(char * *,UINT *) [nsPipe2.cpp:302]
*resultSegmentLen = 0;
if (mWriteCursor == nsnull ||
mWriteCursor == mWriteLimit) {
=> char* seg = mBuffer.AppendNewSegment();
if (seg == nsnull) {
// buffer is full
return NS_OK;
nsPipe::nsPipeOutputStream::WriteSegments((*)(nsIOutputStream *,void
*,char *,UINT,UINT,UINT *),void *,UINT,UINT *) [nsPipe2.cpp:696]
while (amt > 0) {
PRUint32 writeBufLen;
char* writeBuf;
=> rv = pipe->GetWriteSegment(&writeBuf, &writeBufLen);
if (NS_FAILED(rv))
goto done;
if (writeBufLen == 0) {
nsPipe::nsPipeOutputStream::WriteFrom(nsIInputStream *,UINT,UINT *)
[nsPipe2.cpp:852]
nsPipe::nsPipeOutputStream::WriteFrom(nsIInputStream* fromStream,
PRUint32 count,
PRUint32 *writeCount)
=> {
return WriteSegments(nsReadFromInputStream, fromStream, count,
writeCount);
}
nsSocketReadRequest::OnRead(void) [nsSocketTransport.cpp:2767]
mContext,
mInputStream,
offset,
=> amount);
LOG(("nsSocketReadRequest: listener returned [rv=%x]\n", rv));
nsSocketTransport::doReadWrite(short) [nsSocketTransport.cpp:1037]
// we must not call out to our listener with the
monitor held. mReadRequest
// can only be cleared on this thread, so releasing the
monitor should be safe.
PR_ExitMonitor(mMonitor);
=> readStatus = mReadRequest->OnRead();
PR_EnterMonitor(mMonitor);
if (mReadRequest->IsSuspended()) {
mSelectFlags &= ~PR_POLL_READ;
nsSocketTransport::Process(short) [nsSocketTransport.cpp:518]
LOG(("nsSocketTransport: Transport [host=%s:%d this=%x] "
"is in WaitReadWrite state [readtype=%x writetype=%x
status=%x].\n",
mHostName, mPort, this, GetReadType(), GetWriteType(),
mStatus));
=> mStatus = doReadWrite(aSelectFlags);
break;
case eSocketState_Timeout:
??? [ip=0x09013a38]
nsSocketTransportService::Run(void) [nsSocketTransportService.cpp:505]
pfd->out_flags = 0;
if (transport) {
=> rv = transport->Process(out_flags);
if (NS_BASE_STREAM_WOULD_BLOCK == rv) {
// Update the select flags...
pfd->in_flags = transport->GetSelectFlags();
| Reporter | ||
Comment 1•23 years ago
|
||
I don't see this anymore running Purify under Windows 2000, same testcase.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•