mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #43597 from shoeffner/43596-mask-cifs-passwords
volume: mask password in cifs mount error messages
This commit is contained in:
commit
32f7551e61
3 changed files with 36 additions and 0 deletions
|
@ -361,3 +361,15 @@ func getAddress(opts string) string {
|
|||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// getPassword finds out a password from options
|
||||
func getPassword(opts string) string {
|
||||
optsList := strings.Split(opts, ",")
|
||||
for i := 0; i < len(optsList); i++ {
|
||||
if strings.HasPrefix(optsList[i], "password=") {
|
||||
passwd := strings.SplitN(optsList[i], "=", 2)[1]
|
||||
return passwd
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
|
|
@ -29,6 +29,25 @@ func TestGetAddress(t *testing.T) {
|
|||
|
||||
}
|
||||
|
||||
func TestGetPassword(t *testing.T) {
|
||||
cases := map[string]string{
|
||||
"password=secret": "secret",
|
||||
" ": "",
|
||||
"password=": "",
|
||||
"password=Tr0ub4dor&3": "Tr0ub4dor&3",
|
||||
"password=correcthorsebatterystaple": "correcthorsebatterystaple",
|
||||
"username=moby,password=secret": "secret",
|
||||
"username=moby,password=secret,addr=11": "secret",
|
||||
"username=moby,addr=11": "",
|
||||
}
|
||||
for optsstring, success := range cases {
|
||||
v := getPassword(optsstring)
|
||||
if v != success {
|
||||
t.Errorf("Test case failed for %s actual: %s expected : %s", optsstring, v, success)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRemove(t *testing.T) {
|
||||
skip.If(t, runtime.GOOS == "windows", "FIXME: investigate why this test fails on CI")
|
||||
rootDir, err := os.MkdirTemp("", "local-volume-test")
|
||||
|
|
|
@ -124,6 +124,11 @@ func (v *localVolume) mount() error {
|
|||
}
|
||||
}
|
||||
err := mount.Mount(v.opts.MountDevice, v.path, v.opts.MountType, mountOpts)
|
||||
if err != nil {
|
||||
if password := getPassword(v.opts.MountOpts); password != "" {
|
||||
err = errors.New(strings.Replace(err.Error(), "password="+password, "password=********", 1))
|
||||
}
|
||||
}
|
||||
return errors.Wrap(err, "failed to mount local volume")
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue