Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 642e121

Browse files
committed
Fixing a panic on v2 networking
Make sure the NeworkConfig are never nil in the NetworkConfigs map. Signed-off-by: Vincent Demeester <[email protected]>
1 parent 981fb65 commit 642e121

File tree

3 files changed

+31
-0
lines changed

3 files changed

+31
-0
lines changed

config/merge_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,3 +405,18 @@ services:
405405
}
406406
}
407407
}
408+
409+
func TestParseNetworks(t *testing.T) {
410+
composeFile := []byte(`networks:
411+
public:`)
412+
413+
networkConfigs, err := ParseNetworks(composeFile)
414+
if err != nil {
415+
t.Fatal(err)
416+
}
417+
for key, networkConfig := range networkConfigs {
418+
if networkConfig == nil {
419+
t.Fatalf("networkConfig %s was nil, shouldn't be", key)
420+
}
421+
}
422+
}

config/merge_v2.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,12 @@ func ParseNetworks(bytes []byte) (map[string]*NetworkConfig, error) {
8888
return nil, err
8989
}
9090

91+
for key, value := range networkConfigs {
92+
if value == nil {
93+
networkConfigs[key] = &NetworkConfig{}
94+
}
95+
}
96+
9197
return networkConfigs, nil
9298
}
9399

yaml/network_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,16 @@ func TestUnmarshalNetworks(t *testing.T) {
102102
},
103103
},
104104
},
105+
{
106+
yaml: `network1:`,
107+
expected: &Networks{
108+
Networks: []*Network{
109+
{
110+
Name: "network1",
111+
},
112+
},
113+
},
114+
},
105115
{
106116
yaml: `network1: {}`,
107117
expected: &Networks{

0 commit comments

Comments
 (0)