From nobody Thu Apr 9 16:32:35 2026 Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) (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 6DA923988F8 for ; Fri, 6 Mar 2026 16:16:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772813810; cv=none; b=TDN9bdRZF1nYPQE7DzEJVVuYVOgPUDHCeI5ZYEVgRZ8rX5CWXcAnuXaoiZixXruKFPyhvMgWe416+6vBZB+eULAsxLwUlmtxhbY7fMmdKOzWdshBkRrJBC3F25tNm4dGixLHZKsGNZ8qf/WZb002ck5OQG92QirzZfVGSkGBIJg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772813810; c=relaxed/simple; bh=pqCmG4i63zI075uu4kOvmWDWk+IHed1VX4EuD7N8cIs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=iH2RLw7pvEpQvlbTrETw6SW2MHWTyw3FGfZeFfffsXGYlDXAyKqlsMVZ07+9PeP9r8be+PIQUF2x435v3kIjuPRZa18/bdisWEwHn6dnlWQeymUqMyIG1SERlB+h1seg5pdVnA0xwgE4XVv0+4GZL8RaaVrsHi8UiBkGawcrfYw= 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=O+gMZWkK; arc=none smtp.client-ip=209.85.222.177 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="O+gMZWkK" Received: by mail-qk1-f177.google.com with SMTP id af79cd13be357-8cb38e86cf2so997499585a.1 for ; Fri, 06 Mar 2026 08:16:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772813808; x=1773418608; 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=7JTgv4PapIQUDHEczer+CgJCHXoyAjXXXCcUP3B5+Wo=; b=O+gMZWkKCjxAOItZ/h02NmTkKOXZodCXZ+S91gTEPrv7DqIw1uvqvIKczfcvO5wxzU 8J7c79QJmxtPo0VfXndHZVYbC0UzWSyWX0ngxjxtRHI4OvxBGZQZO05RcsGjV1929jAF 24qx3EeOIrr17jcxPZD8unqirCBBYkP57m9Ifk/RkGH7N531Bg8vUwv8k6t6LpPqKIWB eVR/9mmSxv0YsFUrLuOZH1Sw4itfnDEWvdHZ7eL4ZZIZ6D9GINQroDwPi3Gq20wlcS07 e1NBEIlO5qug5qNd2cFkHYEL5enQKA/6nqwiR94Tmc2UmCfzVPS0pM4UgLvpil9sPC+c pvSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772813808; x=1773418608; 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=7JTgv4PapIQUDHEczer+CgJCHXoyAjXXXCcUP3B5+Wo=; b=wrfGSKK2XPlb9JBavN0IUFgxtdB1kOtiu8pu1yK0H471weNFukpZ1vbVQ7I+kjxsZf a3pF679dkPJ21EdiWOes71yJ11WtVHbmPmRGvPIHUOjIKGaaMi4of4dB+co3CJSlENRr FNrgDbE4Qck7z05JktRsmR8L7INFfvE8BMONmUV3lQmeXSClZeQ4aNriVMHZq1OpWKU1 2cFQpYwRxmPoriJ21Rf68yd8PawwmspYGJUEHj9C+4jXqJQopDh0mUccoIMtMKmsZRAx MsK6Fpzi3KfSx1xq9hSKgDjzZgdVhxE5IQSXNe7kEWna76nWAwL8Na8dD24phd5bK+4h hUSg== X-Gm-Message-State: AOJu0YzPgGRzOmwI+BMyR+F7z9U2640Qi7Tx5Uw+NQUbeQqjWGpCWtCH NaR/L8goViH0jB2OP/GkhVHko7iOu8Is4x+Q7opIIMNKHICXxgzxjdI+k1GQErtf X-Gm-Gg: ATEYQzzYDVTobUTOERdNBtzI9vjjP0F5rx8IYHuzotNeTu/mGDtCHdFcHCxL9+rBOBh hiC9tmNmXBndtiWWU6PDQYPPxBhOD4szL6Pd8dtcuxPimO6e3CvSuZ/kbhJumIJTjhQ7VUvLCsM BxrXLgFgRGROZPGk6FlRTHVw2W8FVeWl/u6M4XE5xkuv8i20NjvaTvr4XaI7fZhLyMp0B4wXB3H Uwu6OD3Vx25B0jlH8QzTltTbh7EMJd8m01aRiSfjiKepcACzP9TlEZ0LKAm0g486h68bD110duI XZ4GGKGJJ8TqXnc+eWl2RZVyhYsgWmZdCkJVSrd/XmgxFz36+HmrURKzNDUa7CFwFJQjdDFjnG3 bdYfh8kCOWhdEG7xCa+4P2iGPuZYv7o1HBcwT4sWBz7rghQed9atLLJ9GMo3HPF7F10dPSZRu1v e1w9CjdQRVIkqaZpWBoz/Ce2LBOILRBn8CBfJJQ3oEDrutAlDbLZTvnbE+2ZwWNQNoW7PACkHz4 1MN X-Received: by 2002:a05:620a:bd5:b0:8c7:c25:9e69 with SMTP id af79cd13be357-8cd6d4886edmr316302985a.66.1772813808265; Fri, 06 Mar 2026 08:16:48 -0800 (PST) Received: from instance-20260207-1316.vcn12250046.oraclevcn.com ([150.136.248.187]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8cd6f3a8beasm136816985a.0.2026.03.06.08.16.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 08:16:47 -0800 (PST) From: Josh Law X-Google-Original-From: Josh Law To: akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, Josh Law Subject: [PATCH] lib/inflate: fix memory leak in inflate_dynamic() on inflate_codes() failure Date: Fri, 6 Mar 2026 16:16:47 +0000 Message-ID: <20260306161647.2811874-1-objecting@objecting.org> 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 inflate_codes() fails in inflate_dynamic(), the code jumps to the 'out' label which only frees 'll', leaking the Huffman tables 'tl' and 'td'. Restructure the code so that the decoding tables are always freed before reaching the 'out' label. Signed-off-by: Josh Law --- lib/inflate.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/inflate.c b/lib/inflate.c index 5b1e70d0ce8c..ae704e4f64ec 100644 --- a/lib/inflate.c +++ b/lib/inflate.c @@ -1009,10 +1009,10 @@ DEBG("dyn5d "); DEBG("dyn6 "); =20 /* decompress until an end-of-block code */ - if (inflate_codes(tl, td, bl, bd)) { + if (inflate_codes(tl, td, bl, bd)) ret =3D 1; - goto out; - } + else + ret =3D 0; =20 DEBG("dyn7 "); =20 @@ -1021,7 +1021,6 @@ DEBG("dyn7 "); huft_free(td); =20 DEBG(">"); - ret =3D 0; out: free(ll); return ret; --=20 2.43.0