aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/info.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/meta/info.go b/meta/info.go
index 9dd1178..5ec35a7 100644
--- a/meta/info.go
+++ b/meta/info.go
@@ -124,16 +124,18 @@ func (i Info) ReadAt(b []byte, off int64) (n int, err error) {
flen := i.Files[n].Length
- if int64(len(b)) <= i.Files[n].Length {
+ if int64(len(b))+foff <= flen {
return fd.ReadAt(b, foff)
}
- nn, err := fd.ReadAt(b[:flen], foff)
+ end := flen + foff
+
+ done, err := fd.ReadAt(b[:end], foff)
if err != nil {
- return nn, err
+ return done, err
}
- nnn, err := i.ReadAt(b[flen:], foff+flen)
- return nn + nnn, err
+ next, err := i.ReadAt(b[end:], end)
+ return done + next, err
}
func (i Info) String() string {