Closed Bug 203595 Opened 21 years ago Closed 21 years ago

Memory leak of 64 bytes from 2 blocks allocated in PR_Calloc

Categories

(SeaMonkey :: MailNews: Address Book & Contacts, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 203593

People

(Reporter: stephend, Assigned: sspitzer)

Details

(Keywords: memory-leak)

Build: Latest trunk pull on Windows 2000 under Purify.

Steps to Reproduce:

1.  mozilla.exe -addressbook
2.  Click 'New Card'
3.  Type "S" into any field.
4.  Hit Save.

    [W] MLK: Memory leak of 64 bytes from 2 blocks allocated in PR_Calloc
        Distribution of leaked blocks
        Allocation location
        calloc         [dbgheap.c:456]
        PR_Calloc      [prmem.c:484]
            return PR_MD_calloc( (size_t)nelem, (size_t)elsize );
        
        #else
     =>     return calloc(nelem, elsize);
        #endif
        }
        
        dir_GetReplicationInfo [nsDirPrefs.cpp:2444]
            char replPrefName[128];
            PR_ASSERT(server->replInfo == nsnull);
        
     =>     server->replInfo = (DIR_ReplicationInfo *)PR_Calloc(1, sizeof
(DIR_ReplicationInfo));
            if (server->replInfo && replPrefName)
            {
                PRBool prefBool;
        DIR_GetPrefsForOneServer(DIR_Server *,int,int) [nsDirPrefs.cpp:2910]
             * attributes which are in our predefined set (DIR_AttributeId) so
             * store those in an array of IDs for more convenient access
             */
     =>     dir_GetReplicationInfo (prefstring, server, tempstring);
        
            server->PalmCategoryId = DIR_GetIntPref (prefstring,
"PalmCategoryId", tempstring, -1);
            server->PalmSyncTimeStamp = DIR_GetIntPref (prefstring,
"PalmSyncTimeStamp", tempstring, 0);
        nsAbDirProperty::GetDirectoryProperties(nsIAbDirectoryProperties * *)
[nsAbDirProperty.cpp:330]
          rv = GetDirPrefId(prefId);
          NS_ENSURE_SUCCESS(rv,rv);
          server->prefName = nsCRT::strdup(prefId.get());
     =>   DIR_GetPrefsForOneServer(server, PR_FALSE, PR_FALSE);
        
          // Now create the obj and move info in DIR_Server to it.
          nsCOMPtr <nsIAbDirectoryProperties> properties;
        nsAbDirectoryDataSource::createDirectoryTreeNameSortNode(nsIAbDirectory
*,nsIRDFNode * *) [nsDirectoryDataSource.cpp:712]
        
          // Get directory type.
          nsCOMPtr <nsIAbDirectoryProperties> properties;
     =>   rv = directory->GetDirectoryProperties(getter_AddRefs(properties));
          NS_ENSURE_SUCCESS(rv,rv);
          PRUint32 dirType;
          rv = properties->GetDirType(&dirType);
        nsAbDirectoryDataSource::createDirectoryNode(nsIAbDirectory
*,nsIRDFResource *,nsIRDFNode * *) [nsDirectoryDataSource.cpp:578]
          if ((kNC_IsWriteable == property))
            rv = createDirectoryIsWriteableNode(directory, target);
          if ((kNC_DirTreeNameSort == property))
     =>   rv = createDirectoryTreeNameSortNode(directory, target);
          return rv;
        }
        
    nsAbDirectoryDataSource::GetTarget(nsIRDFResource *,nsIRDFResource
*,int,nsIRDFNode * *) [nsDirectoryDataSource.cpp:219]
        
          nsCOMPtr<nsIAbDirectory> directory(do_QueryInterface(source, &rv));
          if (NS_SUCCEEDED(rv) && directory)
     =>     rv = createDirectoryNode(directory, property, target);
          else
            return NS_RDF_NO_VALUE;
          return rv;
    CompositeDataSourceImpl::GetTarget(nsIRDFResource *,nsIRDFResource
*,int,nsIRDFNode * *) [nsCompositeDataSource.cpp:825]
            for (PRInt32 i = 0; i < count; ++i) {
                nsresult rv;
                rv = mDataSources[i]->GetTarget(aSource, aProperty, aTruthValue,
     =>                                         aResult);
                if (NS_FAILED(rv))
                    return rv;
        
    XULSortServiceImpl::GetCachedTarget(_sortStruct *,int,nsIRDFResource
*,nsIRDFResource *,int,nsIRDFNode * *) [nsXULSortService.cpp:640]
            } else if (sortInfo->db) {
              // if we don't have a cached value, look it up in the document's DB
              if (NS_SUCCEEDED(rv = (sortInfo->db)->GetTarget(aSource,
aProperty, aTruthValue, aResult))
     =>           && (rv != NS_RDF_NO_VALUE))
              {
                // and if we have a value, cache it away in our mInner also
(ignore errors)
                sortInfo->mInner->Assert(aSource, aProperty, *aResult, PR_TRUE);
QA Contact: nbaca → technutz
mass re-assign.
Assignee: racham → sspitzer
marking dup

this should be fixed by the patch to bug 203593.

*** This bug has been marked as a duplicate of 203593 ***
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → DUPLICATE
verified dup
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.