aboutsummaryrefslogtreecommitdiff
path: root/src/plugin/plugin_dlopen.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugin/plugin_dlopen.go')
-rw-r--r--src/plugin/plugin_dlopen.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/plugin/plugin_dlopen.go b/src/plugin/plugin_dlopen.go
index f4addde74c..c5b0a4721c 100644
--- a/src/plugin/plugin_dlopen.go
+++ b/src/plugin/plugin_dlopen.go
@@ -69,7 +69,11 @@ func open(name string) (*Plugin, error) {
name = name[:len(name)-3]
}
- pluginpath, syms := lastmoduleinit()
+ pluginpath, syms, mismatchpkg := lastmoduleinit()
+ if mismatchpkg != "" {
+ pluginsMu.Unlock()
+ return nil, errors.New("plugin.Open: plugin was built with a different version of package " + mismatchpkg)
+ }
if plugins == nil {
plugins = make(map[string]*Plugin)
}
@@ -131,4 +135,4 @@ var (
)
// lastmoduleinit is defined in package runtime
-func lastmoduleinit() (pluginpath string, syms map[string]interface{})
+func lastmoduleinit() (pluginpath string, syms map[string]interface{}, mismatchpkg string)