Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49023a99 authored by Kelvin Zhang's avatar Kelvin Zhang Committed by Gerrit Code Review
Browse files

Merge "Fix zip64 reader when file size is < 4GB and 32 bit fields are -1"

parents 9f381d5c 45e2f140
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -43,6 +43,15 @@ func (w *Writer) CopyFrom(orig *File, newName string) error {
		offset:     uint64(w.cw.count),
	}
	w.dir = append(w.dir, h)
	if !fh.isZip64() {
		// Some writers will generate 64 bit sizes and set 32 bit fields to
		// uint32max even if the actual size fits in 32 bit. So we should
		// make sure CompressedSize contains the correct value in such
		// cases. With out the two lines below we would be writing invalid(-1)
		// sizes in such case.
		fh.CompressedSize = uint32(fh.CompressedSize64)
		fh.UncompressedSize = uint32(fh.UncompressedSize64)
	}

	if err := writeHeader(w.cw, fh); err != nil {
		return err