From nobody Tue Jun 16 11:19:15 2026 Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D5D9228CB8 for ; Sun, 19 Apr 2026 12:34:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776602080; cv=none; b=pE/83ku93kSMapoAIxgJJPycJhoZe2HTqd9Iiqk6ufmc92kTYuKVJZTCaucCYMWJrSxUVTnIV1nB/UrruyCsIKNGeLLgIkMdCK9Xh7TCttkW4ysCxt9vFPXEec3kqy1k8Ea2Vti/F9K8rrA7h92gtfIRdlQJwFkasa9fZk3b/PQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776602080; c=relaxed/simple; bh=lMPOAmklU1lxJng2NRvHaM5aScwdnjgz/Bc0ecvywvM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=rBw0S8+QfhNCx5gG8C88D49pB1L2th0ibzfK15ghcrVUJVM0VAqduT11sRrNI0mhAP+HWKOMuVG3UxuwV+cKgFP1uov9ev3EWda/goTA/lm5Jvu3bvn6dK8qtXdBEob8xkuIab56XHkZMiqKp1w0xCUOfNoKFpsiC54Bzqc65vQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nqz7ihKu; arc=none smtp.client-ip=209.85.167.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nqz7ihKu" Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-5a2c3dfb4a1so2261433e87.2 for ; Sun, 19 Apr 2026 05:34:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776602078; x=1777206878; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=gM1EdLz25xMxq7KWz/gr6KVdtP5MCF2ctzI+OwtySv0=; b=nqz7ihKusJsd/kA2CVX+XmRCkO7oRrSDTEEu0QdbYQdlGfEF6l+MZelGC8z7q+OfMI Z4msHfye4YwGU0NmNIRkOFHF/7X4akbafkR0vJbo6iEjLCxMZk2aJ5DTmZp0xCRaYFE5 HqM+P2IlUnYMwUWCQt8I8yyx0ikCvI5Z8bAcyyv3ECNBUOyXcsxJY08ErDKjzng0dn9A tI2o2K5lw040zH7e8SEq7pdZyNKnlTkCJCVIt4ijNrW5OuWPfxCSkKolm7OWOD5WRGaw KUdvKJ/FYkG1JuILyhCFPvpQy/pdgKxLaJ13F08lCY9z4BgVSClnU1v8PafpvR9JkTNe yOcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776602078; x=1777206878; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=gM1EdLz25xMxq7KWz/gr6KVdtP5MCF2ctzI+OwtySv0=; b=LtkWTGew/1J78ZPjnYVRxyA34BTXs7osO2P3sUPG4k9PLWuCVNpcGpOKNrhiGSJQ+q u88nFzpfmjZxkcNzxIFebBAr/rs7A1YZOSx1wfvWmRbohCBI3RTwWbktdjWK7olcjK/q XQY9OIfzrml4MjH3H/QfvTRvTkjzFkKrG9DdZ4dPmT9ZCT5IVbh9dSiS03m7JQu+RZTA xvDJ1xbYDOcU3iLMS7jSU5LKKW14m10HHdFGYOsSzbbTR2FdvLXypjTyuAwIOQcUVLCG zmYbBOcdrZQtgv8x3cacNuZqLW4giRpMDmrpU3RTB2NUdeDx/q2J4csVJb+Lx//UBD2y 7OxA== X-Gm-Message-State: AOJu0YzhVzzY+dm0waiZ7Z6/hke4LBRTgyi7JbYMTrXyhalCE26y2399 oN37OqUJGGtWTo3Jv1sgoHuAERkB8eyQ1Wzl3xtGThIN4samzyIyG8JO X-Gm-Gg: AeBDievogzd9/6ObAI2insksW//Cj6ahAvrYg0uPDfM0T0bILleh2QXUs20mUmu3Pck HBHiJ/W3L/dcrCI8KKCwQcLyC1rnNCwyXzlYXmxTLriJy2El9Z7UFvupqUFaTWwtR9kHnfgOiLy inlfFwxqZOUh363JFPBI3hVNXlE3iIMaAQRKGN6YdQ2LbJEYHJ/AWMknn9H+c0lsG61bv2ANd5E Il75xXNYvNYgrWmj+0azeync8lHZsR1cuWXRcA2TiQhevczo5xI68H/CK1+vPy5LZz03kp4ge7f c4T+/cg2YZa2Bzq/qLtJe2KnQcsgt2EgOqEY0bnBs0dVcr401/ad5tOcyvnB0mJfSrM/fHNkmb1 hcvTHqTiMbhVKDWOMcWJcBWnOHPAg8G+VGjY3gWKyYr2vm22F9osoDAHElTp//SJrR5TH+/00Bu LilWe83GtllycmBR83c0N23NE8 X-Received: by 2002:a05:6512:31d4:b0:5a2:c404:8383 with SMTP id 2adb3069b0e04-5a4172ea739mr3297339e87.44.1776602077451; Sun, 19 Apr 2026 05:34:37 -0700 (PDT) Received: from ServerHive.. ([2a01:4f9:3070:1e08::2]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a4185ad0e7sm2199326e87.12.2026.04.19.05.34.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 05:34:36 -0700 (PDT) From: Josh Law To: akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, Josh Law Subject: [PATCH] lib/decompress: track total bytes consumed with fill function Date: Sun, 19 Apr 2026 12:34:36 +0000 Message-ID: <20260419123436.2124783-1-joshlaw48@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When using a fill function to read chunks, pos was only tracking the offset within the current buffer. It completely ignored all previously read chunks. Track the consumed bytes across chunks so we report the actual total back to the caller. Signed-off-by: Josh Law --- lib/decompress_inflate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/decompress_inflate.c b/lib/decompress_inflate.c index e19199f4a684..f595fd4bb5b3 100644 --- a/lib/decompress_inflate.c +++ b/lib/decompress_inflate.c @@ -48,6 +48,7 @@ static int INIT __gunzip(unsigned char *buf, long len, u8 *zbuf; struct z_stream_s *strm; int rc; + size_t rcved =3D 0; =20 rc =3D -1; if (flush) { @@ -143,7 +144,7 @@ static int INIT __gunzip(unsigned char *buf, long len, =20 while (rc =3D=3D Z_OK) { if (strm->avail_in =3D=3D 0) { - /* TODO: handle case where both pos and fill are set */ + rcved +=3D strm->next_in - zbuf; len =3D fill(zbuf, GZIP_IOBUF_SIZE); if (len < 0) { rc =3D -1; @@ -180,7 +181,7 @@ static int INIT __gunzip(unsigned char *buf, long len, zlib_inflateEnd(strm); if (pos) /* add + 8 to skip over trailer */ - *pos =3D strm->next_in - zbuf+8; + *pos =3D rcved + (strm->next_in - zbuf) + 8; =20 gunzip_5: free(strm->workspace); --=20 2.43.0