Skip to content

Commit ac23d40

Browse files
authored
Config: Fix panic on invalid lua-shared-dict. (#12281)
1 parent 440575e commit ac23d40

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

internal/ingress/controller/template/configmap.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,11 @@ func ReadConfig(src map[string]string) config.Configuration {
125125
delete(conf, luaSharedDictsKey)
126126
lsd := splitAndTrimSpace(val, ",")
127127
for _, v := range lsd {
128-
v = strings.ReplaceAll(v, " ", "")
129-
results := strings.SplitN(v, ":", 2)
128+
results := strings.SplitN(strings.ReplaceAll(v, " ", ""), ":", 2)
129+
if len(results) != 2 {
130+
klog.Errorf("Ignoring poorly formatted Lua dictionary %v", v)
131+
continue
132+
}
130133
dictName := results[0]
131134
size := dictStrToKb(results[1])
132135
if size < 0 {

internal/ingress/controller/template/configmap_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,11 @@ func TestLuaSharedDictsParsing(t *testing.T) {
390390
entry: map[string]string{"lua-shared-dicts": "configuration_data: 10, my_random_dict:15 , another_example:2"},
391391
expect: map[string]int{"configuration_data": 10240, "my_random_dict": 15360, "another_example": 2048},
392392
},
393+
{
394+
name: "invalid format",
395+
entry: map[string]string{"lua-shared-dicts": "mydict: 10, invalid_dict 100"},
396+
expect: map[string]int{"mydict": 10240},
397+
},
393398
{
394399
name: "invalid size value should be ignored",
395400
entry: map[string]string{"lua-shared-dicts": "mydict: 10, invalid_dict: 1a, bad_mb_dict:10mb"},

0 commit comments

Comments
 (0)