aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/dashboard
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-06-20 14:29:36 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-06-23 16:48:43 +0000
commite37f12b27f7d237739d9d8ab7bbd11c94950a6b3 (patch)
treecb19888bedfeffc7dcd48b544e4c27d8fc8f13e4 /syz-cluster/dashboard
parent84d723cfd568e2286c960561ac5682fc741ab4b4 (diff)
syz-cluster: save and display reproducers for findings
Diffstat (limited to 'syz-cluster/dashboard')
-rw-r--r--syz-cluster/dashboard/handler.go14
-rw-r--r--syz-cluster/dashboard/templates/series.html6
2 files changed, 19 insertions, 1 deletions
diff --git a/syz-cluster/dashboard/handler.go b/syz-cluster/dashboard/handler.go
index 8799b1550..9b8503df3 100644
--- a/syz-cluster/dashboard/handler.go
+++ b/syz-cluster/dashboard/handler.go
@@ -258,6 +258,20 @@ func (h *dashboardHandler) findingInfo(w http.ResponseWriter, r *http.Request) e
return h.streamBlob(w, finding.ReportURI)
case "log":
return h.streamBlob(w, finding.LogURI)
+ case "syz_repro":
+ opts, err := blob.ReadAllBytes(h.blobStorage, finding.SyzReproOptsURI)
+ if err != nil {
+ return err
+ }
+ repro, err := blob.ReadAllBytes(h.blobStorage, finding.SyzReproURI)
+ if err != nil {
+ return err
+ }
+ fmt.Fprintf(w, "# %s\n", opts)
+ _, err = w.Write(repro)
+ return err
+ case "c_repro":
+ return h.streamBlob(w, finding.CReproURI)
default:
return fmt.Errorf("%w: unknown key value", errBadRequest)
}
diff --git a/syz-cluster/dashboard/templates/series.html b/syz-cluster/dashboard/templates/series.html
index 9a71e0053..6e01360b1 100644
--- a/syz-cluster/dashboard/templates/series.html
+++ b/syz-cluster/dashboard/templates/series.html
@@ -154,7 +154,11 @@
{{.Title}}
{{end}}
</td>
- <td><a href="/findings/{{.ID}}/log" class="modal-link-raw">[Log]</a></td>
+ <td>
+ {{if .LogURI}}<a href="/findings/{{.ID}}/log" class="modal-link-raw">[Log]</a>{{end}}
+ {{if .SyzReproURI}}<a href="/findings/{{.ID}}/syz_repro" class="modal-link-raw">[Syz Repro]</a>{{end}}
+ {{if .CReproURI}}<a href="/findings/{{.ID}}/c_repro" class="modal-link-raw">[C Repro]</a>{{end}}
+ </td>
</tr>
{{end}}
</tbody>