From nobody Sat Jun 13 14:53:36 2026 Received: from cstnet.cn (smtp81.cstnet.cn [159.226.251.81]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8DD1A399002; Wed, 29 Apr 2026 06:52:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=159.226.251.81 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777445562; cv=none; b=imtIOqiflYEiznHxaoEFhkhsKWm9hyyl7/MRzprUi1ciX6rtvDFtQ+KRP2Y0NT4Nmw5hgCMeKq71xCtdDmnYBWd4XmnZQex7gfAYidQJZ+7f9JJ+Jkacf+1HVIdDy+K8S7k6dHkMFfoVvKoOlE10/1LjJKXPoM7wftGcDPfDqb8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777445562; c=relaxed/simple; bh=hIzzJ4F+rc6Q24yDtADm6IwN0+SjVmQeL9TIHTcOkOY=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=ZfzEQegBWEld7/z24ZlgOdx2kXqguKLKnUvOXXKPw3P0Y/R3j2m+U8C34k8qQmSYVs2u5REA8/U1tJXCeflpvWNoKzeb6rlcyRee9vyFUf6Zexw2LUvdoiU2Be45B2G+/1YAQzK4uueVzxSqobDbj8ohEtjPTSuve4OgPTQdL14= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn; spf=pass smtp.mailfrom=isrc.iscas.ac.cn; arc=none smtp.client-ip=159.226.251.81 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=isrc.iscas.ac.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=isrc.iscas.ac.cn Received: from localhost.localdomain (unknown [36.112.3.223]) by APP-03 (Coremail) with SMTP id rQCowACHqN+mqvFpkeGIDw--.597S2; Wed, 29 Apr 2026 14:52:23 +0800 (CST) From: Haoxiang Li To: tiffany.lin@mediatek.com, andrew-ct.chen@mediatek.com, yunfei.dong@mediatek.com, mchehab@kernel.org, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, laurent.pinchart@ideasonboard.com, hverkuil+cisco@kernel.org, benjamin.gaignard@collabora.com, p.zabel@pengutronix.de, george.sun@mediatek.com, nicolas@ndufresne.ca Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Haoxiang Li , stable@vger.kernel.org Subject: [PATCH v2] media: mediatek: vcodec: free working buf on error path in vdec_vp9_slice_setup_lat() Date: Wed, 29 Apr 2026 14:52:21 +0800 Message-Id: <20260429065221.175159-1-lihaoxiang@isrc.iscas.ac.cn> X-Mailer: git-send-email 2.25.1 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 X-CM-TRANSID: rQCowACHqN+mqvFpkeGIDw--.597S2 X-Coremail-Antispam: 1UD129KBjvJXoW7ArWktr4UXr4DXr45Jr1rtFb_yoW8AFWrpF s0krW5ZFy0yFnFyay8JF4xua1rC3ySvryxWw4ag34IyryYqr4xXr1IyFyakr45Aws2ya48 ur1qqry8uFW5AaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUU9014x267AKxVW5JVWrJwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26r1j6r1xM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4j 6F4UM28EF7xvwVC2z280aVAFwI0_Jr0_Gr1l84ACjcxK6I8E87Iv6xkF7I0E14v26r4j6r 4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0 I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r 4UM4x0Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628v n2kIc2xKxwCY1x0262kKe7AKxVW8ZVWrXwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7x kEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E 67AF67kF1VAFwI0_GFv_WrylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCw CI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1x MIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIda VFxhVjvjDU0xZFpf9x0pRHUDLUUUUU= X-CM-SenderInfo: 5olkt0x0ld0ww6lv2u4olvutnvoduhdfq/1tbiCRAME2nxk-dc3gAAs4 Content-Type: text/plain; charset="utf-8" Add an error path label in vdec_vp9_slice_setup_lat() and call vdec_vp9_slice_free_working_buffer() to free working buffer to prevent potential memory leak. Fixes: 5d418351ca8f ("media: mediatek: vcodec: support stateless VP9 decodi= ng") Cc: stable@vger.kernel.org Signed-off-by: Haoxiang Li --- Changes in v2: - Remove two functions' return value check and error code, since these never fails. Thanks, Nicolas! --- .../vcodec/decoder/vdec/vdec_vp9_req_lat_if.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_r= eq_lat_if.c b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_= req_lat_if.c index cd1935014d76..5a424d738fed 100644 --- a/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_= if.c +++ b/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_= if.c @@ -1166,24 +1166,22 @@ static int vdec_vp9_slice_setup_lat(struct vdec_vp9= _slice_instance *instance, if (ret) goto err; =20 - ret =3D vdec_vp9_slice_setup_lat_buffer(instance, vsi, bs, lat_buf); - if (ret) - goto err; + vdec_vp9_slice_setup_lat_buffer(instance, vsi, bs, lat_buf); =20 vdec_vp9_slice_setup_seg_buffer(instance, vsi, &instance->seg[0]); =20 /* setup prob/tile buffers for LAT */ =20 - ret =3D vdec_vp9_slice_setup_prob_buffer(instance, vsi); - if (ret) - goto err; + vdec_vp9_slice_setup_prob_buffer(instance, vsi); =20 ret =3D vdec_vp9_slice_setup_tile_buffer(instance, vsi, bs); if (ret) - goto err; + goto alloc_err; =20 return 0; =20 +alloc_err: + vdec_vp9_slice_free_working_buffer(instance); err: return ret; } --=20 2.25.1