From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 0109240FDB9 for ; Tue, 4 Aug 2026 19:55:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785873329; cv=none; b=jjQXLegIYToIWH5oUvfqam17FcXl/ZNFxWq9mJxDmqgHJ2d9oSOmAB1sHMAWFb2bszD5C4XYLY/6DM3Hfb0lBO4Mqb5dEQjKoSWHqipQEP6f8gNeksM7HtZZLTlV86bXAk1/GfRnX7UUefcgsKloB8eu3W2r8hmzPo1xBNivYEg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785873329; c=relaxed/simple; bh=dqL+AcBaRpXwJ4JRQsztjZtVPY7ji0RmcbPX5VwGs/o=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=aR73QJJik7fdTwaU0VrArAlxp9Oejg6A7hq7OsUmOafIvg98XMww0fs+iO8Jt85YuK0j/jcLLIWFgGvZJQdgbpd86JyxhFyllKqu6w378EDLOKyqPkA8dTK4eqc4vbXlf/4vMR24p5LZIvEOZr7TZz3PW5hDElfq59Vjq9Jxyno= 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=puyXUrTE; arc=none smtp.client-ip=209.85.128.43 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="puyXUrTE" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-496b7622a83so1247355e9.2 for ; Tue, 04 Aug 2026 12:55:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785873326; x=1786478126; darn=vger.kernel.org; h=content-disposition:content-type:mime-version:message-id:subject:cc :to:from:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=fkPLBFFBu5YlJOOvUQnGQewzqBSLsCWqPU9nyPRdcoU=; b=puyXUrTEyLqmkQ27aBeR0b3eA+In96E6pVqacA+UpnghDagHGemZ3gFCQRUXvxjsYu NWOH/LnyuS8SjHgwfJEoLDqS4qvB73weUEyjK1rx6POCtjoqlGKQIJdXYCRnNmQkvFd1 4Uhf5CDUyg3++vToWeZdVu2ddGAZaIdsElpfmiS8DsaM5jnfLOcJrYQYKmVgVn4A6k7q z4m2ndIF9r5CDuj272WBXkzEuGSHnK0uR+eB9o4/vmF2hS/2mu5rWRdndHYsxTJhm0Bu Uy4pZOrzteT1FpbwLsPExE0Gy40k4R9V6cSYPrYRyml0ZqWxs6nGExhAU9RO4Bv9yrqL ddWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785873326; x=1786478126; h=content-disposition:content-type:mime-version:message-id:subject:cc :to:from:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=fkPLBFFBu5YlJOOvUQnGQewzqBSLsCWqPU9nyPRdcoU=; b=RhfsKhAZYMO/OoIHz7xvbrMKg+03YbcTvFq5rmJy88cGnUwPK8a4lrO5UAh2fwEufE 4W91MnfcyJUrl5yp0PUYNBGZ7F9CYLauVwK9suATjvopx5+Te84j3WINzfrNv724dxjN NOFutSf1TEoA0FlT+2n8V2slNk7gnluE2J2Wga3C4jt4Zg+Y3916k6MUBrZq/mMpycyR Kf5XE3S5HPhoWQdXbEe9M8V/nbkMzrPiRIm9j0IZazRU2VU39tqTImvuLhxdQqSsMEXW 10BM33TRRFKe3lr9+9C4varZi5HqSM8EWkFbqLgxtcFv9OmQsd331nU86kirtCi648xz GF3A== X-Forwarded-Encrypted: i=1; AHgh+RpH/5vW7PJfkKgM5NCQB5LXElJBPt65VUEviPvO1OcCf7TDTMzmklooLK/uQRj8EFe0PjjrZz22/TQIHf8=@vger.kernel.org X-Gm-Message-State: AOJu0YwSMVRv70iRN/ofR2SQcRDFn3uwtSzQW3n9Tw+ogbXmmqeEMFXv Xc1H3J4y3UotbP9r5DolCqCndB1yuNIt6OLA1E93+Ycs3hjAfH2UI4v9aM85hw== X-Gm-Gg: AR+sD11KzNBykOHWcRtlPqCPrpu/XEAbB/HR224UM7XJb4m5WGsnKgH9WNIcWaBa2/U IvG37Y5tMJp4b/V5Y+2wq4aHp02Hk9/hGaXtsvhueeuuB1aDB5KhdBG8TZbchBaT9B3jpT0An/b 3UhdM/p/cFuDMjgzGSgy0mYMFXRSao6hbaaD0vcCJWH7huXrgSCWg+nNM7PIjcArUfM0PiCpZzq StuDq55A1gtNAa4ahY1lyYNpEa50nCLbfqGZkqidDxHhx4wsZlAA/ggLY8e2s68PyLvpRwMlISr kSHUtIXl29FybDAbzeXqLKAj3aDNp3J1ppkb9JQ+/AbuLBmctiQS+BxogI9Ux3eC+Ft08dtJQHf jnF96TEKiCCG8zrGIbimja28yWcpRHvWYR6++jYytpzwGpB4sQcX2VDG0anYKwBTVL5Kyc/WmkE rtxv3yiLwUTP5uR8y4rphWp2rrwcGa6x/SCw7legOVroA1tI1Pg33G1T9PRFLXE8fapgNltF9i4 kguMVodNFD29Xb8hJ8Qphb1 X-Received: by 2002:a05:600c:12c8:b0:495:63e4:7f78 with SMTP id 5b1f17b1804b1-4994e7baae6mr5923955e9.10.1785873326056; Tue, 04 Aug 2026 12:55:26 -0700 (PDT) Received: from michalis-linux (adsl-75.176.58.251.tellas.gr. [176.58.251.75]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4994e04db3asm29898965e9.15.2026.08.04.12.55.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Aug 2026 12:55:25 -0700 (PDT) Date: Tue, 4 Aug 2026 22:55:23 +0300 From: Michail Tatas To: maddy@linux.ibm.com, mpe@ellerman.id.au, chleroy@kernel.org, atrajeev@linux.ibm.com, npiggin@gmail.com Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH] powerpc/pseries/htmdump: Fix leak in htmdump_init_debugfs Message-ID: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline If any allocation fails during init all previous allocations are leaked and the debugfs directory is left. Fix by freeing the allocations that have already happened and also remove the directory that has been created. Signed-off-by: Michail Tatas --- arch/powerpc/platforms/pseries/htmdump.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/platforms/pseries/htmdump.c b/arch/powerpc/platforms/pseries/htmdump.c index 489a80e87082..f33941b80ada 100644 --- a/arch/powerpc/platforms/pseries/htmdump.c +++ b/arch/powerpc/platforms/pseries/htmdump.c @@ -527,28 +527,28 @@ static int htmdump_init_debugfs(void) htm_status_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); if (!htm_status_buf) { pr_err("Failed to allocate htmstatus buf\n"); - return -ENOMEM; + goto htm_status_buf_err; } /* Debugfs interface file to present System Processor Configuration */ htm_info_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); if (!htm_info_buf) { pr_err("Failed to allocate htm info buf\n"); - return -ENOMEM; + goto htm_info_buf_err; } /* Debugfs interface file to present HTM capabilities */ htm_caps_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); if (!htm_caps_buf) { pr_err("Failed to allocate htm caps buf\n"); - return -ENOMEM; + goto htm_caps_buf_err; } /* Memory to present HTM system memory configuration */ htm_mem_buf = kmalloc(PAGE_SIZE, GFP_KERNEL); if (!htm_mem_buf) { pr_err("Failed to allocate htm mem buf\n"); - return -ENOMEM; + goto htm_mem_buf_err; } debugfs_create_file("htmstatus", 0400, htmdump_debugfs_dir, htm_status_buf, &htmstatus_fops); @@ -557,6 +557,17 @@ static int htmdump_init_debugfs(void) debugfs_create_file("htmsystem_mem", 0400, htmdump_debugfs_dir, htm_mem_buf, &htmsystem_mem_fops); return 0; + +htm_mem_buf_err: + kfree(htm_caps_buf); +htm_caps_buf_err: + kfree(htm_info_buf); +htm_info_buf_err: + kfree(htm_status_buf); +htm_status_buf_err: + debugfs_remove_recursive(htmdump_debugfs_dir); + kfree(htm_buf); + return -ENOMEM; } static int __init htmdump_init(void) -- 2.43.0