aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/report/linux.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/report/linux.go')
-rw-r--r--pkg/report/linux.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/pkg/report/linux.go b/pkg/report/linux.go
index 959089d70..216fcf18e 100644
--- a/pkg/report/linux.go
+++ b/pkg/report/linux.go
@@ -189,6 +189,7 @@ func (ctx *linux) Parse(output []byte) *Report {
rep.reportPrefixLen = len(rep.Report)
rep.Report = append(rep.Report, report...)
setReportType(rep, oops, format)
+ ctx.setExecutorInfo(rep)
if !rep.Corrupted {
rep.Corrupted, rep.CorruptedReason = ctx.isCorrupted(title, report, format)
}
@@ -890,6 +891,26 @@ func (ctx *linux) isCorrupted(title string, report []byte, format oopsFormat) (b
return false, ""
}
+var syzLinuxCommRe = regexp.MustCompile(` Comm: syz\.(\d+)\.(\d+) `)
+
+func (ctx *linux) setExecutorInfo(rep *Report) {
+ match := syzLinuxCommRe.FindSubmatch(rep.Report)
+ if match == nil {
+ return
+ }
+ info := &ExecutorInfo{}
+ var err error
+ info.ProcID, err = strconv.Atoi(string(match[1]))
+ if err != nil {
+ return
+ }
+ info.ExecID, err = strconv.Atoi(string(match[2]))
+ if err != nil {
+ return
+ }
+ rep.Executor = info
+}
+
func linuxStallFrameExtractor(frames []string) string {
// During rcu stalls and cpu lockups kernel loops in some part of code,
// usually across several functions. When the stall is detected, traceback