Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
|
9fc34aee0a | |
|
6e33d928cc |
|
@ -18,6 +18,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FindInPath returns the full path of the plugin by searching in the provided path
|
// FindInPath returns the full path of the plugin by searching in the provided path
|
||||||
|
@ -26,6 +27,10 @@ func FindInPath(plugin string, paths []string) (string, error) {
|
||||||
return "", fmt.Errorf("no plugin name provided")
|
return "", fmt.Errorf("no plugin name provided")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if strings.ContainsRune(plugin, os.PathSeparator) {
|
||||||
|
return "", fmt.Errorf("invalid plugin name: %s", plugin)
|
||||||
|
}
|
||||||
|
|
||||||
if len(paths) == 0 {
|
if len(paths) == 0 {
|
||||||
return "", fmt.Errorf("no paths provided")
|
return "", fmt.Errorf("no paths provided")
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,5 +99,13 @@ var _ = Describe("FindInPath", func() {
|
||||||
Expect(err).To(MatchError(fmt.Sprintf("failed to find plugin %q in path %s", pluginName, pathsWithNothing)))
|
Expect(err).To(MatchError(fmt.Sprintf("failed to find plugin %q in path %s", pluginName, pathsWithNothing)))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Context("When the plugin contains a directory separator", func() {
|
||||||
|
It("returns an error", func() {
|
||||||
|
bogusPlugin := ".." + string(os.PathSeparator) + "pluginname"
|
||||||
|
_, err := invoke.FindInPath(bogusPlugin, []string{anotherTempDir})
|
||||||
|
Expect(err).To(MatchError("invalid plugin name: " + bogusPlugin))
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue