Assertion failure during Wasm exception object initialization
Categories
(Core :: JavaScript: WebAssembly, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox83 | --- | unaffected |
firefox84 | --- | unaffected |
firefox85 | --- | disabled |
firefox86 | --- | fixed |
People
(Reporter: asumu, Assigned: asumu)
Details
(Keywords: assertion, crash)
Attachments
(2 files)
1.33 KB,
patch
|
Details | Diff | Splinter Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0
Steps to reproduce:
The attached patch contains a test case for the import-export.js
jit-test for Wasm exceptions that triggers a crash due to an assertion failure.
Actual results:
There's a crash because the exception object instantiation needs the EventDesc
type, but this access is outside the lifetime of the ValTypeVector
pointer that's stored in the type.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
Revise the type representation of exception argument types
in EventDesc. This avoids the ValTypeVector pointer in ResultType
from being used out of its lifetime in instantiating event
exports from Wasm modules.
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
I've attached a possible patch for fixing this, which uses a representation from an old version of https://phabricator.services.mozilla.com/D96681. It avoids the pointer lifetime issue by keeping a copying the FuncType
args in the EventDesc
instead of keeping the pointer.
I couldn't think of a good way to fix this while keeping the ResultType
representation, but if anyone has suggestions for that I would be happy to revise the patch too.
Comment 4•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Comment 5•5 years ago
|
||
The patch landed in nightly and beta is affected.
:asumu, is this bug important enough to require an uplift?
If not please set status_beta
to wontfix
.
For more information, please visit auto_nag documentation.
Comment 6•5 years ago
|
||
What is this status_beta
field of which you speak?
As I understand it, this experimental code is nightly-only and additionally behind a flag. Beta should not be affected.
Updated•5 years ago
|
Description
•