From bb6b04897b5d83dd89fc11074dd66af024f9c6fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Bj=C3=B8rsn=C3=B8s?= Date: Mon, 26 Feb 2024 14:15:24 +0000 Subject: [PATCH] 8326099: GZIPOutputStream should use Deflater.getBytesRead() instead of Deflater.getTotalIn() Reviewed-by: jpai --- .../share/classes/java/util/zip/GZIPOutputStream.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/java.base/share/classes/java/util/zip/GZIPOutputStream.java b/src/java.base/share/classes/java/util/zip/GZIPOutputStream.java index d3880c2f4d7..cea0880fca6 100644 --- a/src/java.base/share/classes/java/util/zip/GZIPOutputStream.java +++ b/src/java.base/share/classes/java/util/zip/GZIPOutputStream.java @@ -212,7 +212,9 @@ public class GZIPOutputStream extends DeflaterOutputStream { */ private void writeTrailer(byte[] buf, int offset) throws IOException { writeInt((int)crc.getValue(), buf, offset); // CRC-32 of uncompr. data - writeInt(def.getTotalIn(), buf, offset + 4); // Number of uncompr. bytes + // RFC 1952: Size of the original (uncompressed) input data modulo 2^32 + int iSize = (int) def.getBytesRead(); + writeInt(iSize, buf, offset + 4); } /*