diff --git a/benchfmt/reader.go b/benchfmt/reader.go index 32b0ec6..6a84631 100644 --- a/benchfmt/reader.go +++ b/benchfmt/reader.go @@ -149,6 +149,11 @@ func (r *Reader) Scan() bool { r.result.line++ // We do everything in byte buffers to avoid allocation. line := r.s.Bytes() + // We only accept utf-8 encoded files. + if !utf8.Valid(line) { + r.err = fmt.Errorf("%s: invalid encode, only utf-8 encoded files are supported", r.result.fileName) + return false + } // Most lines are benchmark lines, and we can check // for that very quickly, so start with that. if bytes.HasPrefix(line, benchmarkPrefix) {