mirror of
https://github.com/minio/minio.git
synced 2025-11-20 01:50:24 -05:00
Ensure comment is always a valid key (#8604)
Also fix LDAP leaky connection
This commit is contained in:
committed by
Nitish Tiwari
parent
c9940d8c3f
commit
d8e3de0cae
@@ -399,6 +399,12 @@ func LookupRegion(kv KVS) (string, error) {
|
||||
func CheckValidKeys(subSys string, kv KVS, validKVS KVS) error {
|
||||
nkv := KVS{}
|
||||
for _, kv := range kv {
|
||||
// Comment is a valid key, its also fully optional
|
||||
// ignore it since it is a valid key for all
|
||||
// sub-systems.
|
||||
if kv.Key == Comment {
|
||||
continue
|
||||
}
|
||||
if _, ok := validKVS.Lookup(kv.Key); !ok {
|
||||
nkv = append(nkv, kv)
|
||||
}
|
||||
@@ -557,23 +563,19 @@ func (c Config) SetKVS(s string, defaultKVS map[string]KVS) error {
|
||||
continue
|
||||
}
|
||||
if len(kv) == 1 && prevK != "" {
|
||||
kvs = append(kvs, KV{
|
||||
Key: prevK,
|
||||
Value: strings.Join([]string{
|
||||
kvs.Get(prevK),
|
||||
madmin.SanitizeValue(kv[0]),
|
||||
}, KvSpaceSeparator),
|
||||
})
|
||||
value := strings.Join([]string{
|
||||
kvs.Get(prevK),
|
||||
madmin.SanitizeValue(kv[0]),
|
||||
}, KvSpaceSeparator)
|
||||
kvs.Set(prevK, value)
|
||||
continue
|
||||
}
|
||||
if len(kv) == 1 {
|
||||
return Errorf(SafeModeKind, "key '%s', cannot have empty value", kv[0])
|
||||
if len(kv) == 2 {
|
||||
prevK = kv[0]
|
||||
kvs.Set(prevK, madmin.SanitizeValue(kv[1]))
|
||||
continue
|
||||
}
|
||||
prevK = kv[0]
|
||||
kvs = append(kvs, KV{
|
||||
Key: kv[0],
|
||||
Value: madmin.SanitizeValue(kv[1]),
|
||||
})
|
||||
return Errorf(SafeModeKind, "key '%s', cannot have empty value", kv[0])
|
||||
}
|
||||
|
||||
tgt := Default
|
||||
@@ -587,25 +589,27 @@ func (c Config) SetKVS(s string, defaultKVS map[string]KVS) error {
|
||||
_, defaultOk := defaultKVS[subSys].Lookup(Enable)
|
||||
if !ok && defaultOk {
|
||||
// implicit state "on" if not specified.
|
||||
kvs = append(kvs, KV{
|
||||
Key: Enable,
|
||||
Value: EnableOn,
|
||||
})
|
||||
kvs.Set(Enable, EnableOn)
|
||||
}
|
||||
|
||||
currKVS := c[subSys][tgt]
|
||||
currKVS, ok := c[subSys][tgt]
|
||||
if !ok {
|
||||
currKVS = defaultKVS[subSys]
|
||||
}
|
||||
|
||||
for _, kv := range kvs {
|
||||
if kv.Key == Comment {
|
||||
// Skip comment and add it later.
|
||||
continue
|
||||
}
|
||||
currKVS.Set(kv.Key, kv.Value)
|
||||
}
|
||||
|
||||
for _, defaultKV := range defaultKVS[subSys] {
|
||||
_, ok := c[subSys][tgt].Lookup(defaultKV.Key)
|
||||
if !ok {
|
||||
currKVS.Set(defaultKV.Key, defaultKV.Value)
|
||||
}
|
||||
v, ok := kvs.Lookup(Comment)
|
||||
if ok {
|
||||
currKVS.Set(Comment, v)
|
||||
}
|
||||
|
||||
copy(c[subSys][tgt], currKVS)
|
||||
c[subSys][tgt] = currKVS
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user