From cad794a94e733139608020a1077fb3feb0bfb845 Mon Sep 17 00:00:00 2001 From: Roshan Piyush Date: Mon, 30 Dec 2024 17:02:27 +0530 Subject: [PATCH] fix: sync map impl --- internal/corazawaf/rule.go | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/internal/corazawaf/rule.go b/internal/corazawaf/rule.go index bfc700f7b..3c08edd44 100644 --- a/internal/corazawaf/rule.go +++ b/internal/corazawaf/rule.go @@ -591,14 +591,12 @@ var transformationNameToID = sync.Map{} // map[string]int func transformationID(currentID int, transformationName string) int { currName := transformationIDToName[currentID] nextName := fmt.Sprintf("%s+%s", currName, transformationName) - if id, ok := transformationNameToID.Load(nextName); ok { - return id.(int) - } - - id := len(transformationIDToName) - transformationIDToName = append(transformationIDToName, nextName) - transformationNameToID.Store(nextName, id) - return id + id, _ := transformationNameToID.LoadOrStore(nextName, func() interface{} { + txid := len(transformationIDToName) + transformationIDToName = append(transformationIDToName, nextName) + return txid + }()) + return id.(int) } // AddTransformation adds a transformation to the rule