Skip to content

Commit c69a570

Browse files
idsulikndeloof
authored andcommitted
fix(merge): ensure unique default values for each key in convertIntoMapping
Signed-off-by: Suleiman Dibirov <[email protected]>
1 parent 769147e commit c69a570

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

override/merge.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,20 +237,33 @@ func mergeIPAMConfig(c any, o any, path tree.Path) (any, error) {
237237
return ipamConfigs, nil
238238
}
239239

240-
func convertIntoMapping(a any, defaultValue any) map[string]any {
240+
func convertIntoMapping(a any, defaultValue map[string]any) map[string]any {
241241
switch v := a.(type) {
242242
case map[string]any:
243243
return v
244244
case []any:
245245
converted := map[string]any{}
246246
for _, s := range v {
247-
converted[s.(string)] = defaultValue
247+
if defaultValue == nil {
248+
converted[s.(string)] = nil
249+
} else {
250+
// Create a new map for each key
251+
converted[s.(string)] = copyMap(defaultValue)
252+
}
248253
}
249254
return converted
250255
}
251256
return nil
252257
}
253258

259+
func copyMap(m map[string]any) map[string]any {
260+
c := make(map[string]any)
261+
for k, v := range m {
262+
c[k] = v
263+
}
264+
return c
265+
}
266+
254267
func override(_ any, other any, _ tree.Path) (any, error) {
255268
return other, nil
256269
}

0 commit comments

Comments
 (0)