feat: fix password registry leak of credentials (#1687)

* fix password registry issue

Signed-off-by: zhaque44 <haque.zubair@gmail.com>
This commit is contained in:
Zubair Haque
2024-09-04 06:27:18 +08:00
committed by GitHub
parent d9eb271ab7
commit 5a48c1d8bb
2 changed files with 62 additions and 26 deletions
+12 -4
View File
@@ -160,10 +160,12 @@ func (helm *execer) AddRepo(name, repository, cafile, certfile, keyfile, usernam
var args []string
var out []byte
var err error
if name == "" && repository != "" {
helm.logger.Infof("empty field name\n")
return fmt.Errorf("empty field name")
}
switch managed {
case "acr":
helm.logger.Infof("Adding repo %v (acr)", name)
@@ -186,9 +188,7 @@ func (helm *execer) AddRepo(name, repository, cafile, certfile, keyfile, usernam
if cafile != "" {
args = append(args, "--ca-file", cafile)
}
if username != "" && password != "" {
args = append(args, "--username", username, "--password", password)
}
if passCredentials {
args = append(args, "--pass-credentials")
}
@@ -196,12 +196,20 @@ func (helm *execer) AddRepo(name, repository, cafile, certfile, keyfile, usernam
args = append(args, "--insecure-skip-tls-verify")
}
helm.logger.Infof("Adding repo %v %v", name, repository)
out, err = helm.exec(args, map[string]string{}, nil)
if username != "" && password != "" {
args = append(args, "--username", username, "--password-stdin")
buffer := bytes.Buffer{}
buffer.Write([]byte(fmt.Sprintf("%s\n", password)))
out, err = helm.execStdIn(args, map[string]string{}, &buffer)
} else {
out, err = helm.exec(args, map[string]string{}, nil)
}
default:
helm.logger.Errorf("ERROR: unknown type '%v' for repository %v", managed, name)
out = nil
err = nil
}
helm.info(out)
return err
}