| Summary: | [Patch included] nspluginwrapper has a race condition on NPP_Destroy and may crash Flash | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | David Benjamin <davidben> |
| Component: | nspluginwrapper | Assignee: | Peter Hatina <phatina> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | caillon, stransky, tsmetana |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | nspluginwrapper-1.3.0-18.fc15 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2011-03-26 05:08:42 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Attachments: | |||
|
Description
David Benjamin
2011-02-24 22:00:08 UTC
Created attachment 482872 [details]
Delay calls to NPP_Destroy when the plugin instance is on the stack.
Delay calls to NPP_Destroy when the plugin instance is on the stack
Otherwise, from the plugin's perspective, NPN_InvalidateRect results in
the plugin instance exploding. One can hardly blame Adobe that Flash
crashes in this situation.
Unfortunately, because we attempt to speak synchronous NPAPI on both
ends and there's the additional SYNC mechanism forcing a particular
order, we cannot reorder the calls. As a result, when NPP_Destroy must
be delayed, we lie to the browser and actually destroy the plugin later.
This means, however, that any NPSavedData provided by the plugin is
ignored. In this case, a warning is emitted.
We do a slightly more conservative check and delay whenever we have any
invoke on the call stack, be it this instance or any other. This is
better than checking the refcount because any NPObjectInfo will hold a
reference.
Created attachment 482873 [details]
Make delayed_calls_process re-entrant
And I also attach all the other relevant patches.
Created attachment 482874 [details]
Delay calls to NPP_Destroy when the plugin instance is on the stack
Created attachment 482875 [details]
Delay calls to NPP_Destroy when the plugin instance is on the stack.
nspluginwrapper-1.3.0-18.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/nspluginwrapper-1.3.0-18.fc15 nspluginwrapper-1.3.0-18.fc15 has been pushed to the Fedora 15 stable repository. If problems still persist, please make note of it in this bug report. |