forked from TrueCloudLab/distribution
fixes #2249: sanitize tenant and tenantid
If tenant or tenantid are passed as env variables, we systematically use Sprint to make sure they are string and not integer as it would make mapstructure fail. Signed-off-by: Raphaël Enrici <raphael@root-42.com>
This commit is contained in:
parent
f411848591
commit
8777e97b72
1 changed files with 13 additions and 0 deletions
|
@ -142,6 +142,19 @@ func FromParameters(parameters map[string]interface{}) (*Driver, error) {
|
||||||
InsecureSkipVerify: false,
|
InsecureSkipVerify: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sanitize some entries before trying to decode parameters with mapstructure
|
||||||
|
// TenantID and Tenant when integers only and passed as ENV variables
|
||||||
|
// are considered as integer and not string. The parser fails in this
|
||||||
|
// case.
|
||||||
|
_, ok := parameters["tenant"]
|
||||||
|
if ok {
|
||||||
|
parameters["tenant"] = fmt.Sprint(parameters["tenant"])
|
||||||
|
}
|
||||||
|
_, ok = parameters["tenantid"]
|
||||||
|
if ok {
|
||||||
|
parameters["tenantid"] = fmt.Sprint(parameters["tenantid"])
|
||||||
|
}
|
||||||
|
|
||||||
if err := mapstructure.Decode(parameters, ¶ms); err != nil {
|
if err := mapstructure.Decode(parameters, ¶ms); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue