From 7cf7adc1971201d405548a629f477ac8d5318a40 Mon Sep 17 00:00:00 2001 From: Alexandre Pujol Date: Fri, 29 Dec 2023 18:28:14 +0100 Subject: [PATCH] fix(aa-log): ensure aa-log -s return valid result. Fix #268 --- pkg/logs/loggers.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pkg/logs/loggers.go b/pkg/logs/loggers.go index 2958d1771..80391473f 100644 --- a/pkg/logs/loggers.go +++ b/pkg/logs/loggers.go @@ -71,24 +71,30 @@ func GetAuditLogs(path string) (io.Reader, error) { func GetJournalctlLogs(path string, useFile bool) (io.Reader, error) { var logs []systemdLog var stdout bytes.Buffer - var value string + var unfilteredValue string if useFile { content, err := os.ReadFile(filepath.Clean(path)) if err != nil { return nil, err } - value = string(content) + unfilteredValue = string(content) } else { - // journalctl -b -o json > systemd.log - cmd := exec.Command("journalctl", "--boot", "--output=json") + // journalctl -b -o json --output-fields=MESSAGE > systemd.log + cmd := exec.Command("journalctl", "--boot", "--output=json", "--output-fields=MESSAGE") cmd.Stdout = &stdout if err := cmd.Run(); err != nil { return nil, err } - value = stdout.String() + unfilteredValue = stdout.String() } + value := "" + for _, v := range strings.Split(unfilteredValue, "\n") { + if strings.Contains(v, "apparmor") { + value += v + "\n" + } + } value = strings.Replace(value, "\n", ",\n", -1) value = strings.TrimSuffix(value, ",\n") value = `[` + value + `]`