Closed
Bug 139329
Opened 22 years ago
Closed 22 years ago
Mozilla repeatedly crashes when sending mail with a personal certificate
Categories
(MailNews Core :: Security: S/MIME, defect, P1)
Tracking
(Not tracked)
VERIFIED
FIXED
psm2.3
People
(Reporter: philip, Assigned: KaiE)
References
Details
(Keywords: topcrash, Whiteboard: [adt1] [ETA 05/07])
Attachments
(1 file, 1 obsolete file)
2.06 KB,
patch
|
javi
:
review+
alecf
:
superreview+
asa
:
approval+
|
Details | Diff | Splinter Review |
Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.0rc1) Gecko/20020417 I got a personal certificate from Thawte. It installed into Mozilla with no problems, and I was able to select it in Mail preferences. I have chosen to sign my mail by default. When I try to mail someone from that account, Mozilla crashes entirely as soon as I hit the "Send" icon. This happened twice in a row, at exactly the same point. I've filed a talkback report, but I triggered another crash which closed the report window before I jotted down the number. I realize how unhelpful that sounds. You may combine this with bug 139095, which is another one I reported about my Mozilla. I don't know, maybe it's a bad installation. I searched for duplicates to this bug, but none seemed the same as this one. Nevertheless, I'll set it to unconfirmed rather than new, in case it's a dupe.
Comment 1•22 years ago
|
||
->PSM
Component: Security: General → S/MIME
Product: MailNews → PSM
Version: other → 2.3
Comment 2•22 years ago
|
||
Reassigning
Comment 3•22 years ago
|
||
Hmm, auto-reassigning didn't work. Manually reassigning to ssaux.
Assignee: mstoltz → ssaux
Comment 4•22 years ago
|
||
This happens repeatably with release candidate one on a Windows XP workstation. The certificate was issued by our University. In the Mail and newsgroup account properties -> Security -> Digital Signing, it was set to "Yes" and the certificate had been selected. On composing a new message, clicking on "Security" showed 'DIgitally signed: not possible" and "Encrypted: no", on hitting "send" mozilla crashes. The only workaround I found is to disable digital signing in the mail and newsgroup properties.
Reporter | ||
Updated•22 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment 5•22 years ago
|
||
Question: have you configured both the signing and encryption options in the settings, or just the signing option? If just the signing option, try configuring both and let me know the result. Also, what is the key size in your certificate - 512, 1024, or 2048? Also, what are the talkback id numbers, if you know?
Comment 6•22 years ago
|
||
Talkback ID 5494722 Appears to be a different fault: Stack Signature nsslibc_memequal() 8919249b Email Address pwhite@mailhaven.com Product ID Mozilla1.0 Build ID 2002041711 Trigger Time 2002-04-22 15:56:46 Platform LinuxIntel Operating System Linux 2.4.18-6mdk Module libnss3.so URL visited User Comments I added a personal certificate, configured Mail client to use it, then tried sending a message to my other account. As soon as I hit "Send", it crashed. Trigger Reason SIGSEGV: Segmentation Fault: (signal 11) Stack Trace nsslibc_memequal() nssUTF8_Equal() match_nickname() nss_hash_enumerator() PL_HashTableEnumerateEntries() nssHash_Iterate() nssCertificateStore_FindCertificatesByNickname() NSSCryptoContext_FindBestCertificateByNickname() CERT_FindCertByNickname() CERT_FindUserCertByUsage() nsNSSCertificateDB::GetEmailEncryptionCert() nsMsgComposeSecure::MimeCryptoHackCerts() nsMsgComposeSecure::BeginCryptoEncapsulation() nsMsgComposeAndSend::BeginCryptoEncapsulation() nsMsgSendPart::Write() nsMsgComposeAndSend::GatherMimeAttachments() nsMsgComposeAndSend::HackAttachments() nsMsgComposeAndSend::Init() nsMsgComposeAndSend::CreateAndSendMessage() _SendMsg__12nsMsgComposeiP14nsIMsgIdentityi() nsMsgCompose::SendMsg() XPTC_InvokeByIndex() XPCWrappedNative::CallMethod() XPC_WN_CallMethod() js_Invoke() js_Interpret() js_Invoke() nsXPCWrappedJSClass::CallMethod() nsXPCWrappedJS::CallMethod() PrepareAndDispatch() nsXPTCStubBase::Stub5() XPTC_InvokeByIndex() XPCWrappedNative::CallMethod() XPC_WN_CallMethod() js_Invoke() js_Interpret() js_Invoke() js_InternalInvoke() JS_CallFunctionValue() nsJSContext::CallEventHandler() nsJSEventListener::HandleEvent() nsEventListenerManager::HandleEventSubType() nsEventListenerManager::HandleEvent() nsXULElement::HandleDOMEvent() PresShell::HandleDOMEventWithTarget() nsButtonBoxFrame::MouseClicked() nsButtonBoxFrame::HandleEvent() PresShell::HandleEventInternal() PresShell::HandleEventWithTarget() nsEventStateManager::CheckForAndDispatchClick() nsEventStateManager::PostHandleEvent() PresShell::HandleEventInternal() PresShell::HandleEvent() nsViewManager::HandleEvent() nsView::HandleEvent() nsViewManager::DispatchEvent() HandleEvent() nsWidget::DispatchEvent() nsWidget::DispatchWindowEvent() nsWidget::DispatchMouseEvent() nsWidget::OnButtonReleaseSignal() nsWindow::HandleGDKEvent() dispatch_superwin_event() handle_gdk_event()
QA Contact: junruh → carosendahl
Comment 7•22 years ago
|
||
kai. cc relyea Reporter: can you confirm that your encryption cert pref is set as well?
Reporter | ||
Comment 8•22 years ago
|
||
I have installed the certificate and configured mail preferences to digitally sign outgoing mail with that certificate by default. As soon as I unchecked the checkbox to sign mail by default, it all works fine. (Doesn't sign my mails, though, obviously. :))
Reporter | ||
Comment 9•22 years ago
|
||
The key size that I've chosen is 2048, and Thawte site seemed to allow Mozilla to generate the key, because I saw a standard Mozilla dialog box that was generating the key. I will try setting the Encrypt option when I get home and let you know.
Reporter | ||
Comment 10•22 years ago
|
||
I have selected the same certificate both for signing and for encrypting. In the encryption part, I selected the "Never" radio button. Looking at the Security button's "Message Security" option of the Compose window, the mail will be signed but not encrypted. This time it sent the mail without a glitch. Changing encryption status to "Required" now says that encryption to my other account is not possible, presumably because it doesn't know the certificate for that account. No crash and no problems. Apparently, the only time a serious problem occurs is when all of these conditions are true: 1) there is a certificate selected for digital signing 2) the mail account is configured to digitally sign messages by default 3) no certificate is selected for the encryption part (radio boxes in that part are ghosted)
Assignee | ||
Comment 11•22 years ago
|
||
I'm unable to reproduce the crash. When I prepare my profile like you described it in your previous comment, I see the following message: "... failed to find encryption certto include in the signed message...". Can you please try whether your cert database is corrupted? Can you backup your cert using cert manager to a p12 file, quit Mozilla, go to you profile directory, move all *.db files to a backup location, restart Mozilla, use cert manager to import your own p12 file, and try again? Does it still crash? If yes, I'm curious, can you look at your profile's prefs.js file, and look whether what the settings for user_pref("mail.identity.id1.encryption_cert_name", ""); user_pref("mail.identity.id1.encryptionpolicy", 0); are? Are they identical to those strings? (Besides having a different string for id1 maybe.)
Comment 12•22 years ago
|
||
With the latest builds, I too can not crash. I see the error messages - this is true on Mac, Linux, and Win32.
I see the crash on Windows 2000 - with branch build 2002-05-01-06. The certificate was on obtained from our internal security server. From prefs.js: user_pref("mail.identity.id2.encryption_cert_name", ""); user_pref("mail.identity.id2.encryptionpolicy", 0);
OS: Linux → All
Hardware: PC → All
Here's my stack info (as pitiful as it is): Build ID 2002050108 Trigger Time 2002-05-01 13:58:18 Platform Win32 Operating System Windows NT 5.0 build 2195 Module nss3.dll URL visited . User Comments Crashed, digitally signing a message with a certificate. Trigger Reason Access violation Source File Name Trigger Line No. Stack Trace nss3.dll + 0x33b0e (0x060b3b0e)
Comment 15•22 years ago
|
||
Was that Trunk or Branch? Also, after the crash, can you restart the browser and attempt to send a message again? Hopefully you won't crash, but instead will see a configuration error message.
Mozilla1.0.0 commercial branch - yes, after crashing, and restart, I now get the same error everybody else sees...
Assignee | ||
Comment 17•22 years ago
|
||
It is bad to hear that it is a one time crash, because it makes it hard to reproduce. Apparently, once you ran into the works, it works afterwards. But I'm happy that I ran into another crash, and changes are high I it is the same crash. The crash happens sometimes when calling CERT_FindUserCeryByUsage with a zero length nickname argument. We arrive in function match_nickname (pkistore.c), where nickname is NULL, going to nssUTF8_Equal, calling nsslibc_memequal with a NULL argument as first param. #0 0x406cc8f2 in memcmp () from /lib/i686/libc.so.6 No locals. #1 0x44aa1818 in match_nickname (k=0x0, v=0xbfff8e18, a=0x1) at pkistore.c:411 CVS_ID = "@(#) $RCSfile: pkistore.c,v $ $Revision: 1.15.6.1 $ $Date: 2002/04/10 03:28:12 $ $Name: $" #2 0x44aab1b5 in nssUTF8_Equal (a=0x0, b=0xbfff8e18 "", statusOpt=0xbfff8c88) at utf8.c:758 la = 1 lb = 1 #3 0x44aa187a in match_nickname (k=0x8814934, v=0x87f8060, a=0xbfff8d24) at pkistore.c:439 nssrv = PR_SUCCESS c = (NSSCertificate *) 0x88148f8 nickname = (NSSUTF8 *) 0x0 subjectList = (nssList *) 0x87f8060 nt = (struct nickname_template_str *) 0xbfff8d24 #4 0x44aac1be in nss_hash_enumerator (he=0x87efd08, index=0, arg=0xbfff8d04) at hash.c:376 as = (struct arg_str *) 0xbfff8d04 #5 0x4030e2d1 in PL_HashTableEnumerateEntries (ht=0x86d0258, f=0x44aac188 <nss_hash_enumerator>, arg=0xbfff8d04) at /home/kaie/100/mozilla/nsprpub/lib/ds/plhash.c:429 he = (PLHashEntry *) 0x87efd08 hep = (PLHashEntry **) 0x87efcd8 i = 8 nbuckets = 16 rv = 1077378620 n = 0 todo = (PLHashEntry *) 0x0 #6 0x44aac213 in nssHash_Iterate (hash=0x8895438, fcn=0x44aa1818 <match_nickname>, closure=0xbfff8d24) at hash.c:399 as = {fcn = 0x44aa1818 <match_nickname>, closure = 0xbfff8d24} #7 0x44aa18e3 in nssCertificateStore_FindCertificatesByNickname (store=0x88953f8, nickname=0xbfff8e18 "", rvOpt=0x0, maximumOpt=0, arenaOpt=0x0) at pkistore.c:464 rvArray = (NSSCertificate **) 0x0 nt = {nickname = 0xbfff8e18 "", subjectList = 0x0} #8 0x44a9cf2e in NSSCryptoContext_FindBestCertificateByNickname (cc=0x88953d8, name=0xbfff8e18 "", timeOpt=0x0, usage=0xbfff8d9c, policiesOpt=0x0) at cryptocontext.c:226 i = 0 c = (NSSCertificate *) 0x1 nickCerts = (NSSCertificate **) 0x8880bb8 best = {cert = 0x0, time = 0xbfff8d5c, sTime = {prTime = 1020399470449965}, usage = 0xbfff8d9c, policies = 0x0} #9 0x44a87455 in CERT_FindCertByNickname (handle=0x8894020, nickname=0xbfff8e18 "") at stanpcertdb.c:382 cc = (NSSCryptoContext *) 0x88953d8 c = (NSSCertificate *) 0x44a8741c ct = (NSSCertificate *) 0x0 cert = (CERTCertificate *) 0x0 usage = {anyUsage = 1, nss3usage = 3221196256, nss3lookingForCA = 1073796304} #10 0x44a53aa6 in CERT_FindUserCertByUsage (handle=0x8894020, nickname=0xbfff8e18 "", usage=certUsageEmailRecipient, validOnly=1, proto_win=0x88db6c8) at certhigh.c:282 cert = (CERTCertificate *) 0x0 certList = (CERTCertList *) 0x0 rv = 143505096 time = 1020399470449753
Assignee | ||
Comment 18•22 years ago
|
||
I now believe it is a NSS bug. The crash depends on whether you used SSL in the session previously or not. I'm now sure I'm seeing the same crash, because I'm able to reproduce it. Here is how to reproduce the bug: - select a cert for sining - do not select a cert for encryption, if you have already configured a cert for encryption, quit the browser, open file prefs.js from your profile directory, and remove the line(s) that contain: encryption_cert_name - use SSL in your session, either by accessing a page over https, or open your mail inbox, in case you use IMAP/SSL. If you have not used SSL in your session, you will not crash. - compose a mail message to yourself. Open the dropdown box from the security toolbar button, and make sure signing is enabled, but encryption is not. - send the message, and you'll crash.
Assignee | ||
Comment 19•22 years ago
|
||
I believe this is a topcrash. Our experience during the previous weeks has shown, many people who are trying out S/Mime are tempted to only select the signature for signing in mail prefs. And if you do so, seeing the crash is highly likely. I filed NSS bug 141936.
Priority: -- → P1
Whiteboard: [adt2] → [adt1]
Target Milestone: --- → 2.3
Assignee | ||
Comment 20•22 years ago
|
||
Because I think this is a topcrash, I suggest a workaround. Because the bug only seems to occur when querying with NSS with zero lenght string arguments, we should prevent that. I'm attaching a simple patch that fixes the problem for me.
Status: NEW → ASSIGNED
Assignee | ||
Comment 21•22 years ago
|
||
Assignee | ||
Comment 22•22 years ago
|
||
Javi, can you please review?
Updated•22 years ago
|
Whiteboard: [adt1] → [adt1] [Needs r/sr/a=]
Comment 23•22 years ago
|
||
Comment on attachment 82166 [details] [diff] [review] Suggest workaround r=javi
Attachment #82166 -
Flags: review+
Assignee | ||
Comment 24•22 years ago
|
||
Alec, can you please review this topcrash fix?
Whiteboard: [adt1] [Needs r/sr/a=] → [adt1] [Needs sr/a=]
Comment 25•22 years ago
|
||
Comment on attachment 82166 [details] [diff] [review] Suggest workaround why fix the caller, why can't we fix GetEmailEncryptionCert and GetEmailSigningCert to check their parameters, and reset the 2nd parameter that gets passed in?
Assignee | ||
Comment 26•22 years ago
|
||
Alec, your suggestion is reasonable. This is the updated patch for review. Javi/Alec, can you please review again?
Attachment #82166 -
Attachment is obsolete: true
Comment 27•22 years ago
|
||
Comment on attachment 82503 [details] [diff] [review] Better workaround looks great. sr=alecf
Attachment #82503 -
Flags: superreview+
Updated•22 years ago
|
Attachment #82503 -
Flags: review+
Comment 28•22 years ago
|
||
Comment on attachment 82503 [details] [diff] [review] Better workaround r=javi
Assignee | ||
Updated•22 years ago
|
Keywords: adt1.0.0
Whiteboard: [adt1] [Needs sr/a=] → [adt1] [Needs a=]
Comment 29•22 years ago
|
||
Comment on attachment 82503 [details] [diff] [review] Better workaround a=asa (on behalf of drivers) for checkin to the 1.0 branch
Attachment #82503 -
Flags: approval+
Assignee | ||
Updated•22 years ago
|
Whiteboard: [adt1] [Needs a=] → [adt1]
Comment 30•22 years ago
|
||
adt1.0.0+ (on ADT's behalf) approval for checkin to the 1.0 brnach. Pls check this in tonight (if possible), then add the fixed1.0.0 keyword.
Assignee | ||
Comment 31•22 years ago
|
||
Checked in to trunk.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Comment 33•22 years ago
|
||
Verified using Kai's test case in comment 18
Status: RESOLVED → VERIFIED
Keywords: fixed1.0.0 → verified1.0.0
Assignee | ||
Comment 34•22 years ago
|
||
*** Bug 138317 has been marked as a duplicate of this bug. ***
You need to log in
before you can comment on or make changes to this bug.
Description
•