Compare commits

...

2 Commits
main ... v0.8.1

Author SHA1 Message Date
Dan Williams 9fc34aee0a
Merge pull request #811 from squeed/plugin-name-0.8
tighten up plugin-finding logic
2021-02-02 08:20:12 -06:00
Casey Callendrello 6e33d928cc tighten up plugin-finding logic
Signed-off-by: Casey Callendrello <cdc@redhat.com>
2021-02-01 12:18:08 +01:00
2 changed files with 13 additions and 0 deletions

View File

@ -18,6 +18,7 @@ import (
"fmt"
"os"
"path/filepath"
"strings"
)
// 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")
}
if strings.ContainsRune(plugin, os.PathSeparator) {
return "", fmt.Errorf("invalid plugin name: %s", plugin)
}
if len(paths) == 0 {
return "", fmt.Errorf("no paths provided")
}

View File

@ -99,5 +99,13 @@ var _ = Describe("FindInPath", func() {
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))
})
})
})
})