diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2025-06-20 14:29:36 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2025-06-23 16:48:43 +0000 |
| commit | e37f12b27f7d237739d9d8ab7bbd11c94950a6b3 (patch) | |
| tree | cb19888bedfeffc7dcd48b544e4c27d8fc8f13e4 /syz-cluster/dashboard | |
| parent | 84d723cfd568e2286c960561ac5682fc741ab4b4 (diff) | |
syz-cluster: save and display reproducers for findings
Diffstat (limited to 'syz-cluster/dashboard')
| -rw-r--r-- | syz-cluster/dashboard/handler.go | 14 | ||||
| -rw-r--r-- | syz-cluster/dashboard/templates/series.html | 6 |
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> |
