From 078761f00de33bfd4da082dfc0c53850aae1876b Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Tue, 8 Feb 2022 18:04:35 -0500 Subject: [PATCH] fix: skip parsing empty initial admin keys --- internal/config/config.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index 3c5037ee73d97516b7308aa4708d83bca50cef19..2b1ad55c368bfb1e57b0ab0f5591910d02430de6 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -54,18 +54,20 @@ func NewConfig(cfg *config.Config) (*Config, error) { host := cfg.BindAddr port := cfg.Port - pks := make([]string, 0, len(cfg.InitialAdminKeys)) + pks := make([]string, 0) for _, k := range cfg.InitialAdminKeys { var pk = strings.TrimSpace(k) - if bts, err := os.ReadFile(k); err == nil { - // pk is a file, set its contents as pk - pk = string(bts) + if pk != "" { + if bts, err := os.ReadFile(k); err == nil { + // pk is a file, set its contents as pk + pk = string(bts) + } + // it is a valid ssh key, nothing to do + if _, _, _, _, err := ssh.ParseAuthorizedKey([]byte(pk)); err != nil { + return nil, fmt.Errorf("invalid initial admin key %q: %w", k, err) + } + pks = append(pks, pk) } - // it is a valid ssh key, nothing to do - if _, _, _, _, err := ssh.ParseAuthorizedKey([]byte(pk)); err != nil { - return nil, fmt.Errorf("invalid initial admin key %q: %w", k, err) - } - pks = append(pks, pk) } rs := git.NewRepoSource(cfg.RepoPath)