Closed
Bug 403888
Opened 17 years ago
Closed 17 years ago
memory leak in trustdomain.c
Categories
(NSS :: Libraries, defect, P2)
NSS
Libraries
Tracking
(Not tracked)
RESOLVED
FIXED
3.11.10
People
(Reporter: eagle.lu, Assigned: julien.pierre)
References
Details
(Keywords: memory-leak)
Attachments
(1 file, 2 obsolete files)
922 bytes,
patch
|
nelson
:
review+
|
Details | Diff | Splinter Review |
Using memory leak detection tool libumem.so privided by opensolaris, I found there is a memory leak in trustdomain.c.
Following are steps I used:
1. ./firefox -P
2. close profile manager
libumem.so reports following memory leaks:
libumem.so.1`umem_cache_alloc_debug+0x14f
libumem.so.1`umem_cache_alloc+0x180
libumem.so.1`umem_alloc+0xc5
libumem.so.1`malloc+0x27
libumem.so.1`calloc+0x47
libnspr4.so`PR_Calloc+0x65
libnss3.so`PORT_ZAlloc+0x46
libnss3.so`ocsp_InitStatusChecking+0x83
libnss3.so`CERT_EnableOCSPChecking+0x64
libpipnss.so`void setOCSPOptions+0x99
libpipnss.so`unsigned nsNSSComponent::InitializeNSS+0x83d
libpipnss.so`unsigned nsNSSComponent::Init+0x18a
libpipnss.so`unsigned nsNSSComponentConstructor+0xb7
libxpcom_core.so`unsigned nsGenericFactory::CreateInstance+0x46
libxpcom_core.so`unsigned nsComponentManagerImpl::CreateInstanc
eByContractID+0xd6
libxpcom_core.so`unsigned nsComponentManagerImpl::GetServiceByC
ontractID+0x1c8
libxpcom_core.so`unsigned CallGetService+0x71
libxpcom_core.so`unsigned nsGetServiceByContractIDWithError::op
eratorconst+0x35
libxpcom_core.so`void nsCOMPtr_base::assign_from_gs_contractid_
with_error+0x32
...
After some investigation, I found the root cause is
g_default_trust_domain->statusConfig and
g_default_trust_domain->statusConfig->statusContext
are created (malloc'ed) but not freed in NSSTrustDomain_Destroy (called by STAN_Shutdown())
Component: Security → General
QA Contact: firefox → general
Attachment #288832 -
Flags: review?(wtc)
Updated•17 years ago
|
Comment 2•17 years ago
|
||
Boying, thanks for the patch.
We should free td->statusConfig using the td->statusConfig->statusDestroy
function pointer, like this:
+#ifdef NSS_3_4_CODE
+ if (td->statusConfig) {
+ td->statusConfig->statusDestroy(td->statusConfig);
+ td->statusConfig = NULL;
+ }
+#endif
But we're not calling td->statusConfig->statusDestroy right now.
So please carefully test it (single step in the debugger) and
make sure it returns SECSuccess.
Assignee: nobody → nobody
Component: General → Libraries
Product: Firefox → NSS
QA Contact: general → libraries
Target Milestone: --- → 3.12
Version: Trunk → unspecified
Attachment #288832 -
Attachment is obsolete: true
Attachment #288832 -
Flags: review?(wtc)
Thank Wan, I modified the patch and tested it. I've verified that the return code
is SECSuccess
Attachment #288969 -
Flags: review?(wtc)
Comment 4•17 years ago
|
||
Boying, thanks for the new patch. I checked it in on the NSS trunk (NSS 3.12).
Checking in trustdomain.c;
/cvsroot/mozilla/security/nss/lib/pki/trustdomain.c,v <-- trustdomain.c
new revision: 1.56; previous revision: 1.55
done
I made some minor formatting changes and removed the NSS_3_4_CODE
macro, which just became obsolete.
Attachment #288969 -
Attachment is obsolete: true
Attachment #288969 -
Flags: review?(wtc)
Updated•17 years ago
|
Status: NEW → RESOLVED
Closed: 17 years ago
OS: OpenSolaris → All
Hardware: PC → All
Resolution: --- → FIXED
Assignee | ||
Updated•17 years ago
|
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee | ||
Comment 7•17 years ago
|
||
We also want this fix on the NSS_3_11_BRANCH .
Assignee: nobody → julien.pierre.boogz
Status: REOPENED → NEW
Priority: -- → P2
Target Milestone: 3.12 → 3.11.10
Assignee | ||
Comment 8•17 years ago
|
||
Comment on attachment 289023 [details] [diff] [review]
new patch (as checked in)
Asking for 2nd review for branch.
Attachment #289023 -
Flags: review?(nelson)
Comment 9•17 years ago
|
||
Comment on attachment 289023 [details] [diff] [review]
new patch (as checked in)
I guess Wan-Teh implicitly reviewed the patch for the trunk.
r=nelson for the branch, assuming the patch applies cleanly there. (I expect it will)
Attachment #289023 -
Flags: review?(nelson) → review+
Assignee | ||
Comment 10•17 years ago
|
||
Thanks, Nelson. The patch applied cleanly to NSS_3_11_BRANCH. I checked it in.
Checking in trustdomain.c;
/cvsroot/mozilla/security/nss/lib/pki/trustdomain.c,v <-- trustdomain.c
new revision: 1.51.28.5; previous revision: 1.51.28.4
done
Status: NEW → RESOLVED
Closed: 17 years ago → 17 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•