cscli context detect: fix nil dereference (#2635)

* cscli context detect: fix nil dereference
* Remove log.warning for missing pattern
This commit is contained in:
mmetc 2023-12-05 12:08:35 +01:00 committed by GitHub
parent 8bb7da3994
commit 486f96e7ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -332,7 +332,7 @@ cscli lapi context detect crowdsecurity/sshd-logs
} }
// to avoid all the log.Info from the loaders functions // to avoid all the log.Info from the loaders functions
log.SetLevel(log.ErrorLevel) log.SetLevel(log.WarnLevel)
err = exprhelpers.Init(nil) err = exprhelpers.Init(nil)
if err != nil { if err != nil {
@ -499,13 +499,13 @@ func detectNode(node parser.Node, parserCTX parser.UnixParserCtx) []string {
if node.Grok.RegexpName != "" { if node.Grok.RegexpName != "" {
grokCompiled, err := parserCTX.Grok.Get(node.Grok.RegexpName) grokCompiled, err := parserCTX.Grok.Get(node.Grok.RegexpName)
if err != nil { // ignore error (parser does not exist?)
log.Warningf("Can't get subgrok: %s", err) if err == nil {
} for _, capturedField := range grokCompiled.Names() {
for _, capturedField := range grokCompiled.Names() { fieldName := fmt.Sprintf("evt.Parsed.%s", capturedField)
fieldName := fmt.Sprintf("evt.Parsed.%s", capturedField) if !slices.Contains(ret, fieldName) {
if !slices.Contains(ret, fieldName) { ret = append(ret, fieldName)
ret = append(ret, fieldName) }
} }
} }
} }
@ -545,13 +545,13 @@ func detectSubNode(node parser.Node, parserCTX parser.UnixParserCtx) []string {
} }
if subnode.Grok.RegexpName != "" { if subnode.Grok.RegexpName != "" {
grokCompiled, err := parserCTX.Grok.Get(subnode.Grok.RegexpName) grokCompiled, err := parserCTX.Grok.Get(subnode.Grok.RegexpName)
if err != nil { if err == nil {
log.Warningf("Can't get subgrok: %s", err) // ignore error (parser does not exist?)
} for _, capturedField := range grokCompiled.Names() {
for _, capturedField := range grokCompiled.Names() { fieldName := fmt.Sprintf("evt.Parsed.%s", capturedField)
fieldName := fmt.Sprintf("evt.Parsed.%s", capturedField) if !slices.Contains(ret, fieldName) {
if !slices.Contains(ret, fieldName) { ret = append(ret, fieldName)
ret = append(ret, fieldName) }
} }
} }
} }