Crash in vcruntime140.dll@0xcacf | sftk_NewAttribute
Categories
(NSS :: Libraries, defect)
Tracking
(firefox-esr60 unaffected, firefox63+ wontfix, firefox64 ?, firefox65 ?)
| Tracking | Status | |
|---|---|---|
| firefox-esr60 | --- | unaffected |
| firefox63 | + | wontfix |
| firefox64 | --- | ? |
| firefox65 | --- | ? |
People
(Reporter: philipp, Unassigned)
References
Details
(4 keywords)
Crash Data
Updated•7 years ago
|
Comment 2•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Comment 4•7 years ago
|
||
Comment 5•7 years ago
|
||
Comment 6•7 years ago
|
||
Comment 7•7 years ago
|
||
| Reporter | ||
Comment 8•7 years ago
|
||
Comment 9•7 years ago
|
||
Comment 10•7 years ago
|
||
Comment 11•7 years ago
|
||
| Reporter | ||
Comment 12•7 years ago
|
||
| Reporter | ||
Comment 13•7 years ago
|
||
Comment 14•7 years ago
|
||
Comment 15•7 years ago
|
||
| Reporter | ||
Comment 16•7 years ago
|
||
Comment 17•7 years ago
|
||
Comment 18•7 years ago
|
||
Comment 19•7 years ago
|
||
Updated•6 years ago
|
Comment 20•6 years ago
|
||
Comment 21•6 years ago
|
||
Updated•6 years ago
|
Updated•6 years ago
|
Comment 22•6 years ago
|
||
Comment 23•6 years ago
|
||
Hi, I am new here. Stumble upon this bug.
The socorro report mentioned about a raw dump. It would be helpful to be able to download this raw dump. Does anyone have a link to it.
From Raw Dump Description
{ "crash_info": { "address": "0x10c02dddf8b", "crashing_thread": 7, "type": "EXCEPTION_ACCESS_VIOLATION_READ" }, "crashing_thread": { "frames": [ { "frame": 0, "missing_symbols": true, "module": "VCRUNTIME140.dll", "module_offset": "0xcacf", "offset": "0x7fefb1ccacf", "registers": { "r10": "0x0000010c02dddf8b", "r11": "0x000000001fd6a15c", "r12": "0x000007fee6b51b00", "r13": "0x000007fee6b51b00", "r14": "0x0000010c02dddf8b", "r15": "0x0000000000000001", "r8": "0x0000000000000001", "r9": "0x000007fefb1c0000", "rax": "0x000000001fd6a15c", "rbp": "0x0000000000000001", "rbx": "0x00000000000000c0", "rcx": "0x000007fefb1ccacf", "rdi": "0x000000001fd6a000", "rdx": "0x0000010c02dddf8b", "rip": "0x000007fefb1ccacf", "rsi": "0x0000000000000103", "rsp": "0x0000000002dddca8" }, "trust": "context" }
The faulty address is 0x0000010c02dddf8b, the stack pointer is at 0x2dddca8. The calling function was doing a
PORT_Memory(attribute->attrib.pValue, value, len);
The exception is EXCEPTION_ACCESS_VIOLATION_READ, it appear to faulty address was in the variable "value". The variable "value" should point to somewhere in stack so it should be like 0x02dddXXX. The lower 32 bit of the fault was indeed 0x02dddf8b. But the most significant 32 bit has a value of 0x10c instead of 0. This would cause an address fault. The value of 0x10c happens to be the value of type CKA_DERIVE. It appear the value of "value" was picked up from the stack incorrectly. sftk_NewAttrbute did not put type value on stack. It is put on the stack by NSC_GenerateKeyPair() and picked up by sftk_NewAttrbute. Checked all the type declarations, they seem OK. Need to examine the raw dump to see how the compiler mistakenly placed the wrong values in stack.
One thing I noticed was the calling sequence from source is
NSC_GenerateKeyPair -> sftk_AddAttributeType -> sftk_NewAttribute
But the raw dump only showed NSC_GenerateKeyPair -> sftk_NewAttribute. The compiler optimizer compacted the call to sftk_AddAttribute, this may have caused sftk_NewAttribute to pick up the parameters from the wrong place in stack.
Comment 24•6 years ago
|
||
Since we're not seeing this crash anymore, and there's nothing obviously wrong with the code in the frame, marking worksforme.
Description
•