blob: 6bbf30fc72c001b36ef512e61134bd7c51fcfbdd [file] [log] [blame]
{{/*
Copyright 2017 syzkaller project authors. All rights reserved.
Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
Page with details about a single bug.
*/}}
<!doctype html>
<html>
<head>
{{template "head" .Header}}
<title>{{.Bug.Title}}</title>
</head>
<body>
{{template "header" .Header}}
<b>{{.Bug.Title}}</b><br>
Status: {{if .Bug.ExternalLink}}<a href="{{.Bug.ExternalLink}}">{{.Bug.Status}}</a>{{else}}{{.Bug.Status}}{{end}}<br>
Reported-by: {{.Bug.CreditEmail}}<br>
{{if .Bug.Commits}}
Fix commit: {{template "fix_commits" .Bug.Commits}}<br>
{{if .Bug.ClosedTime.IsZero}}
Patched on: {{.Bug.PatchedOn}}, missing on: {{.Bug.MissingOn}}<br>
{{end}}
{{end}}
First crash: {{formatLateness $.Now $.Bug.FirstTime}}, last: {{formatLateness $.Now $.Bug.LastTime}}<br>
{{with $bisect := .BisectCause}}<br>
{{if $bisect.ErrorLink}}
<b>Bisection: {{link $bisect.ErrorLink "error"}}
({{link $bisect.LogLink "bisect log"}})</b><br>
{{else if $bisect.Commit}}{{with $com := $bisect.Commit}}
<b>Bisection: introduced by
({{link $bisect.LogLink "bisect log"}}):</b><br>
<br><span class="mono">
commit {{$com.Hash}}<br>
Author: {{$com.Author}}<br>
Date: {{formatKernelTime $com.Date}}<br>
<br>
&nbsp;&nbsp;{{$com.Title}}<br>
</span><br>
{{end}}{{else if $bisect.Commits}}{{with $bisect.Commits}}
<b>Bisection: the first bad commit could be any of
({{link $bisect.LogLink "bisect log"}}):</b><br>
<br><span class="mono">
{{range $com := $bisect.Commits}}
&nbsp;&nbsp;{{formatTagHash $com.Hash}} {{$com.Title}}<br>
{{end}}
</span><br>
{{end}}{{else}}
<b>Bisection: the bug happens on the oldest tested release
({{link $bisect.LogLink "bisect log"}})</b><br>
{{end}}
Tree: <span title="{{$bisect.Manager}}">{{$bisect.KernelAlias}}</span><br>
{{if $bisect.CrashLogLink}}
Crash: {{link $bisect.CrashReportLink $bisect.CrashTitle}} ({{link $bisect.CrashLogLink "log"}})<br>
{{end}}
Repro: {{optlink $bisect.Crash.ReproCLink "C"}}
{{optlink $bisect.Crash.ReproSyzLink "syz"}}
{{optlink $bisect.Crash.KernelConfigLink ".config"}}<br>
{{end}}
{{template "bug_list" .DupOf}}
{{template "bug_list" .Dups}}
{{template "bug_list" .Similar}}
{{if .SampleReport}}
<br><b>Sample crash report:</b><br>
<textarea id="log_textarea" readonly rows="25" wrap=off>{{printf "%s" .SampleReport}}</textarea><br>
{{end}}
<table class="list_table">
<caption>All crashes ({{.Bug.NumCrashes}}):</caption>
<thead>
<tr>
<th><a onclick="return sortTable(this, 'Manager', textSort)" href="#">Manager</a></th>
<th><a onclick="return sortTable(this, 'Time', textSort, true)" href="#">Time</a></th>
<th><a onclick="return sortTable(this, 'Kernel', textSort)" href="#">Kernel</a></th>
<th><a onclick="return sortTable(this, 'Commit', textSort)" href="#">Commit</a></th>
<th><a onclick="return sortTable(this, 'Syzkaller', textSort)" href="#">Syzkaller</a></th>
<th><a onclick="return sortTable(this, 'Config', textSort)" href="#">Config</a></th>
<th><a onclick="return sortTable(this, 'Log', textSort)" href="#">Log</a></th>
<th><a onclick="return sortTable(this, 'Report', reproSort)" href="#">Report</a></th>
<th><a onclick="return sortTable(this, 'Syz repro', reproSort)" href="#">Syz repro</a></th>
<th><a onclick="return sortTable(this, 'C repro', textSort)" href="#">C repro</a></th>
{{if $.HasMaintainers}}
<th><a onclick="return sortTable(this, 'Maintainers', textSort)" href="#">Maintainers</a></th>
{{end}}
</tr>
</thead>
<tbody>
{{range $c := $.Crashes}}
<tr>
<td class="manager">{{$c.Manager}}</td>
<td class="time">{{formatTime $c.Time}}</td>
<td class="kernel" title="{{$c.KernelAlias}}">{{$c.KernelAlias}}</td>
<td class="tag" title="{{$c.KernelCommit}}
{{formatTime $c.KernelCommitDate}}">{{link $c.KernelCommitLink (formatShortHash $c.KernelCommit)}}</td>
<td class="tag">{{link $c.SyzkallerCommitLink (formatShortHash $c.SyzkallerCommit)}}</td>
<td class="config">{{if $c.KernelConfigLink}}<a href="{{$c.KernelConfigLink}}">.config</a>{{end}}</td>
<td class="repro">{{if $c.LogLink}}<a href="{{$c.LogLink}}">log</a>{{end}}</td>
<td class="repro">{{if $c.ReportLink}}<a href="{{$c.ReportLink}}">report</a>{{end}}</td>
<td class="repro">{{if $c.ReproSyzLink}}<a href="{{$c.ReproSyzLink}}">syz</a>{{end}}</td>
<td class="repro">{{if $c.ReproCLink}}<a href="{{$c.ReproCLink}}">C</a>{{end}}</td>
{{if $.HasMaintainers}}
<td class="maintainers" title="{{$c.Maintainers}}">{{$c.Maintainers}}</td>
{{end}}
</tr>
{{end}}
</tbody>
</table>
</body>
</html>