From 70769f0841b4bca963817a8b76c13c5f744925b5 Mon Sep 17 00:00:00 2001 From: Steve Cliff Date: Thu, 7 May 2026 18:58:33 +0100 Subject: [PATCH] web/sparkline: guard days[i] against shorter days slice in RenderChart --- internal/web/sparkline/sparkline.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/web/sparkline/sparkline.go b/internal/web/sparkline/sparkline.go index 8c5f433..e57fb4b 100644 --- a/internal/web/sparkline/sparkline.go +++ b/internal/web/sparkline/sparkline.go @@ -141,7 +141,8 @@ type ChartOpts struct { // RenderChart returns an inline SVG with up to two y-axes, // one polyline per series, hover-dot per data point, and X-axis // labels at start / midpoint / end. With no series or empty -// series, renders a faint baseline + EmptyLabel centred. +// series, renders a faint baseline + EmptyLabel centred. Points +// beyond len(days) are ignored. func RenderChart(series []Series, days []time.Time, opts ChartOpts) template.HTML { if opts.Width <= 0 { opts.Width = 600 @@ -246,6 +247,9 @@ func RenderChart(series []Series, days []time.Time, opts ChartOpts) template.HTM seg.Reset() } for i, v := range s.Points { + if i >= len(days) { + break + } if math.IsNaN(v) { flush() continue