From nobody Mon Feb 9 10:39:41 2026 Received: from mail-m1032.netease.com (mail-m1032.netease.com [154.81.10.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 956041A83F9 for ; Sun, 28 Dec 2025 17:02:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=154.81.10.32 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766941337; cv=none; b=CyNafHPQotXWK01byKnlhiX/Fm40DWmUBK5IgyAHQ2/fANynM9jmh85L8wogBzItC3vVUGMiXNXtoDcvHkyrx/AoYhvKpbiD2xVW7tVDs9kESMlouqelvF3BmCr1hOMQGtE3RgFahm+I8hJY6VCHsBWqH+vtduzFHKqVpdP0WRY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766941337; c=relaxed/simple; bh=rqyflGgYn37mXD6wVJDdm6+6Cn3nlJTXH5gWHy75Gw8=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=fEndU+ZO5WCW9YmpFv7CUheKzKWqOdfhcjGppyGIv20736YU+73GU9IryU88MRS7yKGT9mtz59o3ePNynTJtR6iYb+FGia8Q7SHjL331RynimE6ftOnDI7Z9sLqm1X6JE022Jg8KvZOFR2ciZWon0IfLv9JRYaVvEAqJGVUFhGw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=seu.edu.cn; spf=pass smtp.mailfrom=seu.edu.cn; dkim=pass (1024-bit key) header.d=seu.edu.cn header.i=@seu.edu.cn header.b=nlpwis8u; arc=none smtp.client-ip=154.81.10.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=seu.edu.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=seu.edu.cn Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=seu.edu.cn header.i=@seu.edu.cn header.b="nlpwis8u" Received: from LAPTOP-N070L597.localdomain (unknown [222.191.246.242]) by smtp.qiye.163.com (Hmail) with ESMTP id 2ecc43598; Mon, 29 Dec 2025 00:26:39 +0800 (GMT+08:00) From: Zilin Guan To: matthias.bgg@gmail.com Cc: angelogioacchino.delregno@collabora.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Zilin Guan , Jianhao Xu Subject: [PATCH v2] soc: mediatek: svs: Fix memory leak in svs_enable_debug_write() Date: Sun, 28 Dec 2025 16:26:36 +0000 Message-Id: <20251228162636.3829733-1-zilin@seu.edu.cn> X-Mailer: git-send-email 2.34.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-HM-Tid: 0a9b65c8882a03a1kunm85e1b38dade86 X-HM-MType: 10 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFITzdXWS1ZQUlXWQ8JGhUIEh9ZQVkaSBhCVhoYQ00eQk4ZHUxNSlYeHw5VEwETFhoSFy QUDg9ZV1kYEgtZQVlJSUlVSkJKVUlPTVVJT0lZV1kWGg8SFR0UWUFZT0tIVUpLSUhOQ0NVSktLVU tZBg++ DKIM-Signature: a=rsa-sha256; b=nlpwis8umtH6crvMFupAyLUqMOSBZ+AIWqxOCqcJbAJcHTX92PC7vN2w0mjWwU2Ditin9qr5zNCPTw4kdlLHxl3niwPoZch+K3etI2J9dGg5/13+SIXvEMXWKO6+O39ouBuGoTtRzCgJ2ffuKkJ47HTcwTRD/RPiDULBbiBRtE8=; s=default; c=relaxed/relaxed; d=seu.edu.cn; v=1; bh=jDJHn13oguvNY4hFfLnIJ/qXHTZIoyp6PophlUZUA4c=; h=date:mime-version:subject:message-id:from; Content-Type: text/plain; charset="utf-8" In svs_enable_debug_write(), the buf allocated by memdup_user_nul() is leaked if kstrtoint() fails. Fix this by using __free(kfree) to automatically free buf, eliminating the need for explicit kfree() calls and preventing leaks. Fixes: 13f1bbcfb582 ("soc: mediatek: SVS: add debug commands") Co-developed-by: Jianhao Xu Signed-off-by: Jianhao Xu Signed-off-by: Zilin Guan --- Changes in v2: - Use __free(kfree) to simplify memory management. --- drivers/soc/mediatek/mtk-svs.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/soc/mediatek/mtk-svs.c b/drivers/soc/mediatek/mtk-svs.c index f45537546553..5ede59299613 100644 --- a/drivers/soc/mediatek/mtk-svs.c +++ b/drivers/soc/mediatek/mtk-svs.c @@ -789,7 +789,7 @@ static ssize_t svs_enable_debug_write(struct file *filp, struct svs_bank *svsb =3D file_inode(filp)->i_private; struct svs_platform *svsp =3D dev_get_drvdata(svsb->dev); int enabled, ret; - char *buf =3D NULL; + char *buf __free(kfree) =3D NULL; =20 if (count >=3D PAGE_SIZE) return -EINVAL; @@ -807,8 +807,6 @@ static ssize_t svs_enable_debug_write(struct file *filp, svsb->mode_support =3D SVSB_MODE_ALL_DISABLE; } =20 - kfree(buf); - return count; } =20 --=20 2.34.1