Closed Bug 440766 Opened 16 years ago Closed 8 years ago

firefox crashes on startup with non-native characters in the profile path

Categories

(Core :: Security: PSM, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: ted, Unassigned)

References

Details

(Keywords: crash, Whiteboard: [psm-fatal])

Given bug 413171, NSS can't be initialized with non-native characters in the profile path. However, Firefox also crashes in this case. I don't know that this is PSM's fault, but it seems the most likely culprit. This is easy to reproduce, on Windows:
1) Create a user account where the username has characters not in your local charset. I copy/pasted Chinese characters from Wikipedia.
2) Log in as this user, and run Firefox
3) Crash (you may or may not see the "security component could not be initialized") dialog.
When I debug it, I get the dialog about failing to init the security component, then the browser window appears, and then the crash happens. It looks like we're crashing on a Necko thread trying to load something from Google over SSL.

Stack:

00fafbc4 7c90104b ntdll!RtlpWaitForCriticalSection+0x8c
00fafbcc 600cb277 ntdll!RtlEnterCriticalSection+0x46
00fafbdc 60652453 nspr4!PR_Lock(struct PRLock * lock = 0x02cd1ac0)+0x17 [e:\fx19rel\winnt_5.2_depend\mozilla\nsprpub\pr\src\threads\combined\prulock.c @ 240]
00fafbe8 60613621 xul!nsSSLIOLayerHelpers::isKnownAsIntolerantSite(class nsCString * str = 0x02cd1ac0)+0xe [e:\fx19rel\winnt_5.2_depend\mozilla\security\manager\ssl\src\nsnssiolayer.cpp @ 1956]
00fafccc 6062db69 xul!nsSSLIOLayerSetOptions(struct PRFileDesc * fd = 0x00000000, int forSTARTTLS = 0, char * proxyHost = 0x00000000 "", char * host = 0x02d57468 "sb-ssl.google.com", int port = 443, class nsNSSSocketInfo * infoObject = 0x02cd1ac0)+0xd7 [e:\fx19rel\winnt_5.2_depend\mozilla\security\manager\ssl\src\nsnssiolayer.cpp @ 3132]
00fafcf8 60653915 xul!nsSSLIOLayerAddToSocket(int family = 16448792, char * host = 0x02d57468 "sb-ssl.google.com", int port = 3322816, char * proxyHost = 0x00000000 "", int proxyPort = 16448792, struct PRFileDesc * fd = 0x02c44600, class nsISupports ** info = 0x00fafda8, int forSTARTTLS = 0)+0x7e [e:\fx19rel\winnt_5.2_depend\mozilla\security\manager\ssl\src\nsnssiolayer.cpp @ 3200]
00fafd18 606538d5 xul!nsSSLIOLayerNewSocket(int family = 2, char * host = 0x02d57468 "sb-ssl.google.com", int port = 3322816, char * proxyHost = 0x00000000 "", int proxyPort = 16448828, struct PRFileDesc ** fd = 0x00fafddc, class nsISupports ** info = 0x00fafda8, int forSTARTTLS = 0)+0x2a [e:\fx19rel\winnt_5.2_depend\mozilla\security\manager\ssl\src\nsnssiolayer.cpp @ 1974]
00fafd3c 605e513b xul!nsSSLSocketProvider::NewSocket(int family = 2, char * host = 0x02d57468 "sb-ssl.google.com", int port = 443, char * proxyHost = 0x00000000 "", int proxyPort = 0, unsigned int flags = 0, struct PRFileDesc ** _result = 0x00fafddc, class nsISupports ** securityInfo = 0x00fafda8)+0x1d [e:\fx19rel\winnt_5.2_depend\mozilla\security\manager\ssl\src\nssslsocketprovider.cpp @ 72]
00fafdb4 605e4ef4 xul!nsSocketTransport::BuildSocket(struct PRFileDesc ** fd = 0x00fafddc, int * proxyTransparent = 0x00fafde0, int * usingSSL = 0x00fafdd8)+0x140 [e:\fx19rel\winnt_5.2_depend\mozilla\netwerk\base\src\nssockettransport2.cpp @ 1010]
00fafe78 605caf99 xul!nsSocketTransport::InitiateSocket(void)+0x63 [e:\fx19rel\winnt_5.2_depend\mozilla\netwerk\base\src\nssockettransport2.cpp @ 1111]
00fafe8c 605caea6 xul!nsSocketTransport::OnSocketEvent(unsigned int type = 0, unsigned int status = 0, class nsISupports * param = 0x02d57920)+0xed [e:\fx19rel\winnt_5.2_depend\mozilla\netwerk\base\src\nssockettransport2.cpp @ 1426]
00fafe9c 6054b198 xul!nsSocketEvent::Run(void)+0x16 [e:\fx19rel\winnt_5.2_depend\mozilla\netwerk\base\src\nssockettransport2.cpp @ 99]
00fafec0 604d54a2 xul!nsThread::ProcessNextEvent(int mayWait = <Memory access error>, int * result = <Memory access error>)+0x218 [e:\fx19rel\winnt_5.2_depend\mozilla\xpcom\threads\nsthread.cpp @ 511]
00fafed4 604ae03b xul!NS_ProcessNextEvent_P(class nsIThread * thread = 0x02cfb1a0, int mayWait = 1)+0x1b [e:\fx19rel\winnt_5.2_depend\mozilla\obj-fx-trunk\xpcom\build\nsthreadutils.cpp @ 227]
00fafefc 6054b198 xul!nsSocketTransportService::Run(void)+0xa4 [e:\fx19rel\winnt_5.2_depend\mozilla\netwerk\base\src\nssockettransportservice2.cpp @ 565]
00faff20 604b90a8 xul!nsThread::ProcessNextEvent(int mayWait = <Memory access error>, int * result = <Memory access error>)+0x218 [e:\fx19rel\winnt_5.2_depend\mozilla\xpcom\threads\nsthread.cpp @ 511]
00faff4c 600cbba9 xul!nsThread::ThreadFunc(void * arg = 0x00357650)+0x71 [e:\fx19rel\winnt_5.2_depend\mozilla\xpcom\threads\nsthread.cpp @ 254]
00faff6c 600cde1d nspr4!_PR_NativeRunThread(void * arg = 0x0032b3c0)+0x169 [e:\fx19rel\winnt_5.2_depend\mozilla\nsprpub\pr\src\threads\combined\pruthr.c @ 458]
00faff74 60002c28 nspr4!pr_root(void * arg = 0x60002cb6)+0xd [e:\fx19rel\winnt_5.2_depend\mozilla\nsprpub\pr\src\md\windows\w95thred.c @ 122]
00faffac 60002cb6 MOZCRT19!_callthreadstartex(void)+0x48 [e:\fx19rel\winnt_5.2_depend\mozilla\obj-fx-trunk\memory\jemalloc\src\threadex.c @ 348]
Flags: blocking1.9.1?
Flags: blocking1.9.0.1?
Severity: normal → critical
Mossop says this is loading the safebrowsing list, fwiw.
Blocks: 441355
Dave, Tony: any ideas what's going on here?
No longer blocks: 441355
Flags: wanted1.9.0.x+
Flags: blocking1.9.0.1?
Flags: blocking1.9.0.1-
Blocks: tomtom
Flags: wanted1.9.1+
Flags: blocking1.9.1?
Flags: blocking1.9.1-
Depends on: 469856
No longer depends on: 413171
Keywords: crash
Assignee: kaie → nobody
Whiteboard: [psm-fatal]
I can't reproduce this - is this still an issue?
Flags: needinfo?(ted)
I haven't looked at this in forever, so if you can't reproduce it then it's probably fixed.
Flags: needinfo?(ted)
Ok - sounds good.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.