From 0bdd0dba678e8db0b4f526a290d71d8f29ac300b Mon Sep 17 00:00:00 2001 From: Raul Jordan Date: Wed, 4 Mar 2020 12:34:23 -0600 Subject: [PATCH] Add warning if shell expansion characters make it in to the path (#5001) --- validator/keymanager/direct_keystore.go | 4 ++++ validator/keymanager/direct_unencrypted.go | 5 +++++ validator/keymanager/wallet.go | 3 +++ 3 files changed, 12 insertions(+) diff --git a/validator/keymanager/direct_keystore.go b/validator/keymanager/direct_keystore.go index 7898f0c81f3..6b398f945e7 100644 --- a/validator/keymanager/direct_keystore.go +++ b/validator/keymanager/direct_keystore.go @@ -42,6 +42,10 @@ func NewKeystore(input string) (KeyManager, string, error) { return nil, keystoreOptsHelp, err } + if strings.Contains(opts.Path, "$") || strings.Contains(opts.Path, "~") || strings.Contains(opts.Path, "%") { + log.WithField("path", opts.Path).Warn("Keystore path contains unexpanded shell expansion characters") + } + if opts.Path == "" { opts.Path = defaultValidatorDir() } diff --git a/validator/keymanager/direct_unencrypted.go b/validator/keymanager/direct_unencrypted.go index 4a2fa1cdf7f..a4dd1404d7d 100644 --- a/validator/keymanager/direct_unencrypted.go +++ b/validator/keymanager/direct_unencrypted.go @@ -6,6 +6,7 @@ import ( "io/ioutil" "os" "path/filepath" + "strings" "github.com/prysmaticlabs/prysm/shared/bls" "github.com/prysmaticlabs/prysm/shared/bytesutil" @@ -35,6 +36,10 @@ func NewUnencrypted(input string) (*Unencrypted, string, error) { return nil, unencryptedOptsHelp, err } + if strings.Contains(opts.Path, "$") || strings.Contains(opts.Path, "~") || strings.Contains(opts.Path, "%") { + log.WithField("path", opts.Path).Warn("Keystore path contains unexpanded shell expansion characters") + } + path, err := filepath.Abs(opts.Path) if err != nil { return nil, unencryptedOptsHelp, err diff --git a/validator/keymanager/wallet.go b/validator/keymanager/wallet.go index cdd6fe0d151..d7d89a1254e 100644 --- a/validator/keymanager/wallet.go +++ b/validator/keymanager/wallet.go @@ -60,6 +60,9 @@ func NewWallet(input string) (KeyManager, string, error) { accounts: make(map[[48]byte]e2wtypes.Account), } + if strings.Contains(opts.Location, "$") || strings.Contains(opts.Location, "~") || strings.Contains(opts.Location, "%") { + log.WithField("path", opts.Location).Warn("Keystore path contains unexpanded shell expansion characters") + } var store e2wtypes.Store if opts.Location == "" { store = filesystem.New()