plugins: do not import symbols globally
Clang's ASAN reported an ODR violation when plugins were loaded. Sure enough, symbols did actually get loaded twice: ==5898==ERROR: AddressSanitizer: odr-violation (0x7fffd95a35e0): [1] size=7 'version' plugins/mate/plugin.c:19:31 [2] size=6 'version' plugins/opcua/plugin.c:19:31 After this change, plugins cannot insert new symbols in the global namespace. Change-Id: Ib11f7263e9c586f8e7c1f8f5fb239b20d46ddd2f Reviewed-on: https://code.wireshark.org/review/13260 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
parent
2bf715dcc2
commit
057b8d7dde
@ -121,7 +121,7 @@ export MallocCheckHeapAbort=1
|
||||
export MallocBadFreeAbort=1
|
||||
|
||||
# Address Sanitizer options
|
||||
export ASAN_OPTIONS=detect_leaks=0:detect_odr_violation=0
|
||||
export ASAN_OPTIONS=detect_leaks=0
|
||||
|
||||
# Create an error report
|
||||
function ws_exit_error() {
|
||||
|
@ -172,7 +172,7 @@ plugins_scan_dir(const char *dirname)
|
||||
|
||||
g_snprintf(filename, FILENAME_LEN, "%s" G_DIR_SEPARATOR_S "%s",
|
||||
dirname, name);
|
||||
if ((handle = g_module_open(filename, (GModuleFlags)0)) == NULL)
|
||||
if ((handle = g_module_open(filename, G_MODULE_BIND_LOCAL)) == NULL)
|
||||
{
|
||||
report_failure("Couldn't load module %s: %s", filename,
|
||||
g_module_error());
|
||||
|
Loading…
x
Reference in New Issue
Block a user