Config: Fix panic on invalid lua-shared-dict
. (#12281)
This commit is contained in:
parent
440575e151
commit
ac23d4069b
2 changed files with 10 additions and 2 deletions
|
@ -125,8 +125,11 @@ func ReadConfig(src map[string]string) config.Configuration {
|
||||||
delete(conf, luaSharedDictsKey)
|
delete(conf, luaSharedDictsKey)
|
||||||
lsd := splitAndTrimSpace(val, ",")
|
lsd := splitAndTrimSpace(val, ",")
|
||||||
for _, v := range lsd {
|
for _, v := range lsd {
|
||||||
v = strings.ReplaceAll(v, " ", "")
|
results := strings.SplitN(strings.ReplaceAll(v, " ", ""), ":", 2)
|
||||||
results := strings.SplitN(v, ":", 2)
|
if len(results) != 2 {
|
||||||
|
klog.Errorf("Ignoring poorly formatted Lua dictionary %v", v)
|
||||||
|
continue
|
||||||
|
}
|
||||||
dictName := results[0]
|
dictName := results[0]
|
||||||
size := dictStrToKb(results[1])
|
size := dictStrToKb(results[1])
|
||||||
if size < 0 {
|
if size < 0 {
|
||||||
|
|
|
@ -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"},
|
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},
|
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",
|
name: "invalid size value should be ignored",
|
||||||
entry: map[string]string{"lua-shared-dicts": "mydict: 10, invalid_dict: 1a, bad_mb_dict:10mb"},
|
entry: map[string]string{"lua-shared-dicts": "mydict: 10, invalid_dict: 1a, bad_mb_dict:10mb"},
|
||||||
|
|
Loading…
Reference in a new issue