Config: Fix panic on invalid lua-shared-dict. (#12281)

This commit is contained in:
Aleksa Cukovic 2024-11-02 22:21:26 +01:00 committed by GitHub
parent 440575e151
commit ac23d4069b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 2 deletions

View file

@ -125,8 +125,11 @@ func ReadConfig(src map[string]string) config.Configuration {
delete(conf, luaSharedDictsKey)
lsd := splitAndTrimSpace(val, ",")
for _, v := range lsd {
v = strings.ReplaceAll(v, " ", "")
results := strings.SplitN(v, ":", 2)
results := strings.SplitN(strings.ReplaceAll(v, " ", ""), ":", 2)
if len(results) != 2 {
klog.Errorf("Ignoring poorly formatted Lua dictionary %v", v)
continue
}
dictName := results[0]
size := dictStrToKb(results[1])
if size < 0 {

View file

@ -390,6 +390,11 @@ func TestLuaSharedDictsParsing(t *testing.T) {
entry: map[string]string{"lua-shared-dicts": "configuration_data: 10, my_random_dict:15 , another_example:2"},
expect: map[string]int{"configuration_data": 10240, "my_random_dict": 15360, "another_example": 2048},
},
{
name: "invalid format",
entry: map[string]string{"lua-shared-dicts": "mydict: 10, invalid_dict 100"},
expect: map[string]int{"mydict": 10240},
},
{
name: "invalid size value should be ignored",
entry: map[string]string{"lua-shared-dicts": "mydict: 10, invalid_dict: 1a, bad_mb_dict:10mb"},