Closed Bug 175161 Opened 23 years ago Closed 22 years ago

NSS shutdown fails after having sent a signed S/Mime message

Categories

(Core Graveyard :: Security: UI, defect, P1)

Other Branch
defect

Tracking

(Not tracked)

VERIFIED FIXED
psm2.4

People

(Reporter: KaiE, Assigned: KaiE)

References

Details

Tested using the patch from bug 157937. Prepare a profile for being able to send signed S/Mime messages. Restart the application. Use File/New Messages Select to sign the message. Send the message to yourself. Quit the application. Actual behaviour: The checking code reports that NSS shutdown failed. Expected behaviour: Shutdown should work correctly.
Blocks: psmleaks
Depends on: 175200
Priority: -- → P1
Target Milestone: --- → 2.4
Blocks: 176168
No longer blocks: 176168
I found an apparent leak in NSS_SMIMESignerInfo_SaveSMIMEProfile. That function has a cert variable whose value comes from one of two functions NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference and NSS_CMSSignerInfo_GetSigningCertificate. NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference returns a new reference to the cert, which must be destroyed or it will leak. NSS_CMSSignerInfo_GetSigningCertificate returns a cert pointer, but the reference is held inside the CMSSignerInfo struct, and will be destroyed when that struct is destroyed. This function never calls CERT_DestroyCertificate. If the cert pointer comes from NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference then this function should destroy the cert reference. Kai, I'd like you to do a test for me. Please set a breakpoint in NSS_SMIMESignerInfo_SaveSMIMEProfile at the call to NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference and see which, if any, PSM SMIME operations hit that breakpoint, and whether NSS_Shutdown fails after doing so.
Nelson, thanks a lot for finding this leak. I have filed NSS bug 176799 for fixing the leak in NSS. However, it does not fix this bug 175161, but it fixes bug 175159.
This should work after bug 177260 has been fixed.
Depends on: 177260
Marking fixed, because both bug 177260 and bug 189025 have been landed. Fix can be verified by using a special test build based on the latest trunk, that includes the profile switching patch from bug 97622 (I'll provide such a build and add a comment to bug 97622).
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Verified fixed.
Status: RESOLVED → VERIFIED
Product: PSM → Core
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.