From: Sergey Matveev Date: Fri, 24 Jun 2022 12:58:48 +0000 (+0300) Subject: Fix some bad errors in WARC reader X-Git-Tag: v0.1.0~26 X-Git-Url: http://www.git.stargrave.org/?p=tofuproxy.git;a=commitdiff_plain;h=d154cabfd09327ecb7eaca266882f0e580498d23 Fix some bad errors in WARC reader --- diff --git a/warc/record.go b/warc/record.go index d755ace..c5823fc 100644 --- a/warc/record.go +++ b/warc/record.go @@ -53,7 +53,7 @@ type SelfRecordReader struct { } func (srr *SelfRecordReader) Read(p []byte) (n int, err error) { - n, err = srr.rrr.Read(p) + n, err = srr.lr.Read(p) if err != nil { srr.Close() } @@ -73,7 +73,11 @@ func (rec *Record) selfReader(noHdr bool, offsets []Offset) (*SelfRecordReader, if err != nil { return nil, err } - return &SelfRecordReader{lr: &io.LimitedReader{R: rrr, N: rec.Size}, rrr: rrr}, nil + size := rec.Size + if !noHdr { + size += int64(rec.HdrLen) + } + return &SelfRecordReader{lr: &io.LimitedReader{R: rrr, N: size}, rrr: rrr}, nil } type RecordReader struct {