Summary: | access to freed memory in the modules loader | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Matthieu Herrb <matthieu.herrb> | ||||
Component: | Server/General | Assignee: | Xorg Project Team <xorg-team> | ||||
Status: | RESOLVED FIXED | QA Contact: | |||||
Severity: | normal | ||||||
Priority: | high | CC: | dberkholz, erik.andren | ||||
Version: | git | Keywords: | patch | ||||
Hardware: | All | ||||||
OS: | All | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 5387, 5799 | ||||||
Attachments: |
|
Description
Matthieu Herrb
2005-08-21 02:19:41 UTC
Created attachment 2959 [details] [review] Proposed patch Comment on attachment 2959 [details] [review] Proposed patch Oops I did not mean to edit this patch The fact that symbols cannot get nuked when the module is unloaded is a design flaw. I can imagine that if a symbol has been marked required by a module that has then be nuked will generate bogus errors because it may be unresolved in another driver which however doesn't need it. The reason is that if one driver is unloaded all its submodules are nuked if their refcount is 0. The right fix would involve to add an argument to the LoaderRefSymbols() and LoaderReqSymbols() function and their SymList equivalents so that the module adding it could be identified. We at least should avoid copying the same string multiple times. This will add bw compatibility issues - but maybe that's what needs to be done. of course, dlloader makes LoaderRefSymList redundant anyway. the only issue i have with this patch is that it leaks, the xnfalloc'd strings won't get free'd on server regeneration. Comment on attachment 2959 [details] [review] Proposed patch nominating for 7. leaks, but not a lot, and prevents a crash. Has this patch been merged into trunk? (Keywording as patch) I just commited it to HEAD. Keeping the bug open if ajax wants to put it in 7.1. Can be closed now. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.