Support a 'passback' attribute for individual IPC arguments to avoid requiring no-op validations
Categories
(Core :: IPC, enhancement, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox89 | --- | fixed |
People
(Reporter: tjr, Assigned: tjr)
References
(Blocks 1 open bug)
Details
Attachments
(5 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
Bug 1610570: Pass attributes through so lower.py can change code emission, and handle NoTaint r?nika
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
In certain circumstances, the unprivileged process will provide a numeric identifier to the privileged process that serves as an internal bookkeeping record. The parent doesn't do anything with this parameter except return it to the child.
For example here, aPromiseID is just returned to the child.
It would be nicer if we could indicate this so there is no need to call MOZ_VALIDATE_AND_GET(foo, true) and indicate a justification somewhere.
We could put it on the argument where it comes from the unprivileged process, so it arrives in the privileged process without a Tainted<> indicator.
Or, we could put it on the argument where it is sent by the privileged process, so the caller is able to pass a Tainted<> directly instead of needing to perform a no-check validation.
I am more inclined to do the latter because (a) it means that validation would have to be performed if someone did want to use it for something and (b) it implicitly means that trying to pass a value that either didn't come from the child or was somehow computed (because it's a foo instead of Tainted<foo>) breaks.
As we look at more IPC methods we want to cut over, we can look for instances where that might break something legitimately.
Bikeshedding on the keyword welcome. Right now I'm imagining 'passthrough' or 'passback'.
Updated•6 years ago
|
| Assignee | ||
Comment 1•5 years ago
|
||
Depends on D108233
Updated•5 years ago
|
| Assignee | ||
Comment 2•5 years ago
|
||
Depends on D108245
| Assignee | ||
Comment 3•5 years ago
|
||
Depends on D108246
| Assignee | ||
Comment 4•5 years ago
|
||
Depends on D108247
Comment 6•5 years ago
|
||
Failure logs: https://treeherder.mozilla.org/logviewer?job_id=334025497&repo=autoland
https://treeherder.mozilla.org/logviewer?job_id=334025513&repo=autoland
Backout link: https://hg.mozilla.org/integration/autoland/rev/d19ecd7a3f2cfa52e7fe8f639473385b4fb13e81
| Assignee | ||
Comment 7•5 years ago
|
||
Comment 9•5 years ago
|
||
Backed out 4 changesets (Bug 1610570) for causing lint failure in lower.py CLOSED TREE
Failure log: https://treeherder.mozilla.org/logviewer?job_id=334168642&repo=autoland&lineNumber=537
Backout: https://hg.mozilla.org/integration/autoland/rev/ea38e210ba4d6d14f40cd17fc38515ce7e965e60
Comment 10•5 years ago
|
||
Comment 11•5 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/0ac29016e4ac
https://hg.mozilla.org/mozilla-central/rev/9f428052118e
https://hg.mozilla.org/mozilla-central/rev/6545e385355e
https://hg.mozilla.org/mozilla-central/rev/1fd580d39fcf
| Assignee | ||
Updated•5 years ago
|
Description
•