Skip to content

Commit

Permalink
Merge pull request #364 from jay7x/master
Browse files Browse the repository at this point in the history
fix: do not expose empty cipassword to API
  • Loading branch information
Tinyblargon authored Oct 3, 2024
2 parents 032717b + 3df2b32 commit 25d65da
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
5 changes: 4 additions & 1 deletion proxmox/config_qemu_cloudinit.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ func (config CloudInit) mapToAPI(current *CloudInit, params map[string]interface
delete += ",ciuser"
}
}
if config.UserPassword != nil && *config.UserPassword == "" {
delete += ",cipassword"
}
if config.DNS != nil {
if config.DNS.SearchDomain != nil {
if *config.DNS.SearchDomain != "" {
Expand Down Expand Up @@ -128,7 +131,7 @@ func (config CloudInit) mapToAPI(current *CloudInit, params map[string]interface
if config.UpgradePackages != nil && !version.Smaller(Version{Major: 8}) {
params["ciupgrade"] = Btoi(*config.UpgradePackages)
}
if config.UserPassword != nil {
if config.UserPassword != nil && *config.UserPassword != "" {
params["cipassword"] = *config.UserPassword
}
return
Expand Down
9 changes: 8 additions & 1 deletion proxmox/config_qemu_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,9 @@ func Test_ConfigQemu_mapToAPI(t *testing.T) {
output: map[string]interface{}{}},
{name: `CloudInit Username empty`,
config: &ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("")}},
output: map[string]interface{}{}},
{name: `CloudInit UserPassword empty`,
config: &ConfigQemu{CloudInit: &CloudInit{UserPassword: util.Pointer("")}},
output: map[string]interface{}{}}},
update: []test{
{name: `CloudInit Custom clear`,
Expand Down Expand Up @@ -863,7 +866,11 @@ func Test_ConfigQemu_mapToAPI(t *testing.T) {
{name: `CloudInit Username empty`,
config: &ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("")}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{Username: util.Pointer("admin")}},
output: map[string]interface{}{"delete": "ciuser"}}}},
output: map[string]interface{}{"delete": "ciuser"}},
{name: `CloudInit UserPassword empty`,
config: &ConfigQemu{CloudInit: &CloudInit{UserPassword: util.Pointer("")}},
currentConfig: ConfigQemu{CloudInit: &CloudInit{UserPassword: util.Pointer("Abc123!")}},
output: map[string]interface{}{"delete": "cipassword"}}}},
{category: `Description`,
create: []test{
{name: `Description empty`,
Expand Down

0 comments on commit 25d65da

Please sign in to comment.