From: Matt Joiner Date: Thu, 29 Dec 2022 08:41:09 +0000 (+1100) Subject: Avoid panic in AnnounceEvent.String X-Git-Tag: v1.49.0~7^2~6 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=f61085c7859f36a78391e32d302b0c6cd3fbb0db;p=btrtrc.git Avoid panic in AnnounceEvent.String --- diff --git a/tracker/udp/announce.go b/tracker/udp/announce.go index 59b6c6cf..b5c9f8ff 100644 --- a/tracker/udp/announce.go +++ b/tracker/udp/announce.go @@ -38,7 +38,12 @@ func (me *AnnounceEvent) UnmarshalText(text []byte) error { var announceEventStrings = []string{"", "completed", "started", "stopped"} func (e AnnounceEvent) String() string { - // See BEP 3, "event", and https://github.com/anacrolix/torrent/issues/416#issuecomment-751427001. + // See BEP 3, "event", and + // https://github.com/anacrolix/torrent/issues/416#issuecomment-751427001. Return a safe default + // in case event values are not sanitized. + if e < 0 || int(e) >= len(announceEventStrings) { + return "" + } return announceEventStrings[e] }