From: SourceForge.net <no...@so...> - 2010-02-28 21:27:04
|
Bugs item #2960862, was opened at 2010-02-28 13:27 Message generated for change (Tracker Item Submitted) made by muonics You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=2960862&group_id=10894 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 40. Dynamic Loading Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Michael Kirkham (muonics) Assigned to: Kevin B KENNY (kennykb) Summary: loaded library paths should be normalized Initial Comment: Somewhat obscure, but tclLoad.c keeps track of loaded libraries by path/filename in order to keep from loading the same library twice. However, it doesn't normalize the path before doing so, so it's possible to load the same library twice in the same interpreter using different paths, which can cause unexpected behavior (such as crashing) depending on what the library does on initialization and cleanup when it expects that to only happen once in an interpreter (e.g. due to double cleanup of thread-specific data): % load ./libfoo.so % info loaded {./libfoo.so Foo} % load ./libfoo.so % info loaded {./libfoo.so Foo} % exit (no crash) % load ./libfoo.so % info loaded {./libfoo.so Foo} % cd .. % load foo/libfoo.so % info loaded {foo/libfoo.so Foo} {./libfoo.so Foo} % exit Segmentation fault (core dumped) Observed with 8.4 branch. Haven't tested 8.5 or 8.6, but I don't see any attempts to normalize in tclLoad.c in MAIN either. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=2960862&group_id=10894 |