浏览代码

Copy authConfigs on save so data is not modified

SaveConfig sets the Username and Password to an empty string
on save.  A copy of the authConfigs need to be made so that the
in memory data is not modified.
Michael Crosby 12 年之前
父节点
当前提交
9332c00ca5
共有 1 个文件被更改,包括 10 次插入5 次删除
  1. 10 5
      auth/auth.go

+ 10 - 5
auth/auth.go

@@ -116,14 +116,19 @@ func SaveConfig(configFile *ConfigFile) error {
 		os.Remove(confFile)
 		return nil
 	}
+
+	configs := make(map[string]AuthConfig, len(configFile.Configs))
 	for k, authConfig := range configFile.Configs {
-		authConfig.Auth = encodeAuth(&authConfig)
-		authConfig.Username = ""
-		authConfig.Password = ""
-		configFile.Configs[k] = authConfig
+		authCopy := authConfig
+
+		authCopy.Auth = encodeAuth(&authCopy)
+		authCopy.Username = ""
+		authCopy.Password = ""
+
+		configs[k] = authCopy
 	}
 
-	b, err := json.Marshal(configFile.Configs)
+	b, err := json.Marshal(configs)
 	if err != nil {
 		return err
 	}