Closed
Bug 648581
Opened 14 years ago
Closed 14 years ago
If DLL blocklisting hook fails, annotate crash reports
Categories
(Core :: Widget: Win32, defect)
Tracking
()
RESOLVED
FIXED
mozilla9
People
(Reporter: khuey, Assigned: ehsan.akhgari)
References
Details
Attachments
(2 files, 3 obsolete files)
|
8.88 KB,
patch
|
benjamin
:
review+
|
Details | Diff | Splinter Review |
|
1.36 KB,
patch
|
Details | Diff | Splinter Review |
We should annotate crash reports if the DLL blocklist fails. This is tricky since the DLL blocklist code runs before XPCOM init.
| Assignee | ||
Comment 1•14 years ago
|
||
When you're talking about blocklisting failing, are you talking about the possible failure to install the patched LdrLoadDll, or failures inside patched_LdrLoadDll (or both?)
| Reporter | ||
Comment 2•14 years ago
|
||
I really was only considering the first. Idk if there's a way to get at the second.
I noticed everytime I run a debug build I get the LdrLoadDll hook failed warning, so I was curious how many of our users see the same thing.
| Assignee | ||
Comment 3•14 years ago
|
||
(In reply to comment #2)
> I really was only considering the first. Idk if there's a way to get at the
> second.
>
> I noticed everytime I run a debug build I get the LdrLoadDll hook failed
> warning, so I was curious how many of our users see the same thing.
I guess the most worrying thing would be the first one. But the more interesting thing is to see why this is failing on your machine. Can you debug that, please?
| Assignee | ||
Comment 4•14 years ago
|
||
I've always found the way that nsWindowsDllBlocklist.h works rather stupid. It's not useful as a header, and so far its purpose has been to split nsWindowsDllBlocklist.cpp into two files, for no good reason.
This patch moves all the contents into the cpp file, to enable us to actually use the header.
| Assignee | ||
Comment 5•14 years ago
|
||
The actual patch is tricky, since the data indicating whether the operation was successful lives in firefox.exe, and the code which needs to query it lives in xul.dll, and I don't really want to export a symbol from firefox.exe to gain access to that data...
I'm not sure what the best solution to this problem is..
Comment 6•14 years ago
|
||
Comment on attachment 526268 [details] [diff] [review]
Part 1: Make nsWindowsDllBlocklist.h useful
Export an XRE_ function?
Attachment #526268 -
Flags: review?(benjamin) → review+
| Assignee | ||
Comment 7•14 years ago
|
||
This is a sample of how reports would look like with this patch:
https://crash-stats.mozilla.com/report/index/c70a6da0-ad5c-4eb1-8352-cd6692110502
(I had to inject a failure in the blocklist setup code manually.)
Attachment #529505 -
Flags: review?(benjamin)
| Assignee | ||
Comment 8•14 years ago
|
||
This is a rolled up version, because it turns out that separating part 1 didn't make sense. But attachment 529505 [details] [diff] [review] should be easier to review.
Comment 9•14 years ago
|
||
Comment on attachment 529505 [details] [diff] [review]
Do the real work
glandium is moving the DLL blocklist into libxul in bug 552864, in which case we really don't need or want the XRE_ functions here. Can this wait for that change and then we can just use internal functions?
| Assignee | ||
Comment 10•14 years ago
|
||
It can wait, I guess, unless Kyle wants it in sooner.
Depends on: 552864
| Reporter | ||
Comment 11•14 years ago
|
||
I'm not in any particular hurry.
Updated•14 years ago
|
Attachment #529505 -
Flags: review?(benjamin)
| Reporter | ||
Comment 12•14 years ago
|
||
So, Bug 552864 is fixed now.
| Reporter | ||
Comment 13•14 years ago
|
||
Ehsan, do you have time to finish this?
| Assignee | ||
Comment 14•14 years ago
|
||
Sorry for the delay.
Attachment #526268 -
Attachment is obsolete: true
Attachment #529505 -
Attachment is obsolete: true
Attachment #529609 -
Attachment is obsolete: true
Attachment #560843 -
Flags: review?(benjamin)
Updated•14 years ago
|
Attachment #560843 -
Flags: review?(benjamin) → review+
| Assignee | ||
Comment 15•14 years ago
|
||
Target Milestone: --- → mozilla9
Comment 16•14 years ago
|
||
Bustage fix for using --disable-crashreporter
{
nsWindowsDllBlocklist.obj : error LNK2019: unresolved external symbol "unsigned int __cdecl CrashReporter::AppendAppNotesToCrashReport(class nsACString_internal const &)" (?AppendAppNotesToCrashReport@CrashReporter@@YAIABVnsACString_internal@@@Z) referenced in function _XRE_SetupDllBlocklist
xul.dll : fatal error LNK1120: 1 unresolved externals
}
Attachment #561090 -
Flags: review?(benjamin)
Comment 17•14 years ago
|
||
Comment on attachment 561090 [details] [diff] [review]
Followup fix for --disable-crashreporter
rs=glandium via #pymake
https://hg.mozilla.org/integration/mozilla-inbound/rev/ab120ebd437b
Attachment #561090 -
Flags: review?(benjamin)
| Assignee | ||
Comment 18•14 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/ab0a6fdf0144
https://hg.mozilla.org/mozilla-central/rev/ab120ebd437b
(Thanks Ed for fixing the --disable-crashreporter case)
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•