From 9541c52d470229be5bb8066db6c7f1101ab85c50 Mon Sep 17 00:00:00 2001 From: Bassem Date: Fri, 19 Jan 2024 12:06:35 +0800 Subject: [PATCH] fix: avoid panic due to concurrent map writes when reading casbin policy --- plugin/casbin/casbin.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugin/casbin/casbin.go b/plugin/casbin/casbin.go index 28491361..55229524 100644 --- a/plugin/casbin/casbin.go +++ b/plugin/casbin/casbin.go @@ -229,7 +229,8 @@ func loadPolicy(policy *Policy, m model.Model) { key := tokens[0] sec := key[:1] m[sec][key].Policy = append(m[sec][key].Policy, tokens[1:]) - m[sec][key].PolicyMap[strings.Join(tokens[1:], model.DefaultSep)] = len(m[sec][key].Policy) - 1 + len := len(m[sec][key].Policy) + m[sec][key].PolicyMap[strings.Join(tokens[1:], model.DefaultSep)] = len - 1 } func toPolicy(ptype string, rules []string) *Policy {