From nobody Sun Feb 8 10:49:15 2026 Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) (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 55EB71E7660 for ; Sun, 11 Jan 2026 19:20:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768159243; cv=none; b=cYQg8ktzPumyZJ8z2nceMCczN2HO47CHO19c1bXtKujS/eT4R8RT2m/iKYRLNGoFSYdeVfYOE59nnvYRHlKE2fSMN7aTr0xMoqHGhjwO/hzk2MH97Z7Pf17flW07cF8yOCXEDVv+GnZjEHWXfFgSSmQ/z5gL4b34BmAh7rM2u2Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768159243; c=relaxed/simple; bh=BSR9/TQ/p5imCEcKrAtupWmllDYKd7yJaXlCD+RS80s=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=g6FsnT8TTi7pEtihs2N0b3MfyHjzXebEMtQZbYCmxfeS9F7dTUsUmJeQMeD58qyMVFkDddHdryL0GpUgeqzNDmwvqCNzjI8N0z9zURhK8dB2/AbZjzSUmBV9tn6bMMmgxFcZ/gGHYN3a8Tk8Y0+811vjpkIuIKEcb7QxfCnNzAE= 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=GH0qpOmH; arc=none smtp.client-ip=209.85.167.175 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="GH0qpOmH" Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-4510974a8cdso3166223b6e.0 for ; Sun, 11 Jan 2026 11:20:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768159241; x=1768764041; 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=ADOaRAJIPqe3P6tro1B0tkl/E3ApY8MPAlzeGxOg7q4=; b=GH0qpOmHbP7Uq2uqJK76OGktBUBBoMiosheyHi5jzwsEpigbCTYskActSl9hnAVWGJ juH04LKmDuNRwA9GM2ndWpf/VPZINf14yvhNGCnRo4QlWKUhA3HjFekUnfXOZ3DQlNFD JJtJAT90ZamsjLdUXRbqc8NZ6fKPTApFN0VSnx9IozQcJLumr0g7RyjAXWe28rS/tJIV fhvaGu7jhh0RWFMJMD+tNViZVhGVTUFsHuP1B5ohC2j61x4UAbPouEEpwFvE2/9sxYFQ el3ycCTWQi8jrpAJgDjc0LCstVXG6tPjVXGyRF6mDsEXxNq0/IEYMoySwGjAEJnRMNpE VLLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768159241; x=1768764041; 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=ADOaRAJIPqe3P6tro1B0tkl/E3ApY8MPAlzeGxOg7q4=; b=DPxBkrgMiEXF3X/TMjgIpfA8ZnisXPvbW9ugEJyeDTc4iy86NIpfkrNT+uHn+sL+Mn XYXKlmUrH9bqJZD38Oonhhe5zM6h2LUsWwSHxgRRCubVSQ/aXmpsnKG6qYxfQb0HKl3l mtI0hDF21MC/ku11X3p3Xs3q51HYuxa1dCf5GVbyjQEhf//p7Vx4EqWKDYArCN5F1BG1 ibrEEThwLWjhz8SRLxvX3gvbwlDJWAVvB/DoPrAE5sB/U5aghR9DQgtznPzHiKgiF2nI KuNMOAWhK5h5YvpzoEaGQJftJ8x2hhKCrkRdsK1lub/ZUK0Ypupa8VtVLhke6uynzZPE NiXw== X-Forwarded-Encrypted: i=1; AJvYcCV0+7IxfND9KSVlfnGTjpFwspghr/oRmYChdADHuPngchYWP//Uja+H5wwTu3+ShNoztk3YnD7lCWvZaZw=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2Sc0TcdXYqT6EPU+OFdg3A/bj3IP7KCuO7fwb8fjN0kO/XGay eGNiK+S290xAqHvdBAoGgb4WL3vN+bN74Xml11+Y447Ff/GxAnMiefiCNi/bPg== X-Gm-Gg: AY/fxX4Re3C123tpM2EKeyoiwNOLgpLFsBjFzWQBve/Hrisu152TeW0RT8OxPKHU4pf JUrnbDmK5vgDxC43s4MkrbRLM2+80KorRRwljymepkn3b5GO798MFkzKRIMiCQrkGjguYKW7EUr BGWfIull4NOXdZbCIiH+w282F83iZoufZP2pSCrk6S7ZYZSudFCtTqtQYYEfpCNFNI1Xred1bOS m9iCQgQeC4G7vBGohITQntj67c+7hYzjvTt10Q43tCmQZ5ZrguCGtRO2i8Z5JQOuk1XE1CebwzE +Lq/btWSEJVlUXuYJrwtRGAATibGXGfnDmsJDB1iEC0rq9RTfbl2qLgOYtP+xhYvP1g2iILlFUa jIKWI2sPEOnGynZ4SVY1vbYoYl9h5bTfOIQ1bq/eKgvA9LDGBEapTTKHTRUVWTNVVR91TCyJDzZ fkxUASmZuOXvRiF2X10zGICJ7/HJ3KXxQU X-Google-Smtp-Source: AGHT+IEFZrElztYmD7bS296+b1DYXEWoHBVFfLQORqYoIZc/PkHNe4XgCvz3eOJtGLAjf72W0WGdSg== X-Received: by 2002:a05:6808:138f:b0:44f:6a32:5364 with SMTP id 5614622812f47-45a6bd77d1amr7966780b6e.24.1768159241285; Sun, 11 Jan 2026 11:20:41 -0800 (PST) Received: from newman.cs.purdue.edu ([128.10.127.250]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-3ffa50dcd81sm10701097fac.17.2026.01.11.11.20.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Jan 2026 11:20:40 -0800 (PST) From: Jiasheng Jiang To: Chris Mason , David Sterba , Jeff Mahoney , Liu Bo , Nikolay Borisov , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Jiasheng Jiang Subject: [PATCH] btrfs: fix memory leaks in create_space_info error paths Date: Sun, 11 Jan 2026 19:20:37 +0000 Message-Id: <20260111192037.20932-1-jiashengjiangcool@gmail.com> 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 Content-Type: text/plain; charset="utf-8" In create_space_info(), the 'space_info' object is allocated at the beginning of the function. However, there are two error paths where the function returns an error code without freeing the allocated memory: 1. When create_space_info_sub_group() fails in zoned mode. 2. When btrfs_sysfs_add_space_info_type() fails. In both cases, 'space_info' has not yet been added to the fs_info->space_info list, resulting in a memory leak. Fix this by adding an error handling label to kfree(space_info) before returning. Fixes: 2be12ef79fe9 ("btrfs: Separate space_info create/update") Signed-off-by: Jiasheng Jiang Reviewed-by: Qu Wenruo --- fs/btrfs/space-info.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index 6babbe333741..3f08e450f796 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -306,18 +306,22 @@ static int create_space_info(struct btrfs_fs_info *in= fo, u64 flags) 0); =20 if (ret) - return ret; + goto out_free; } =20 ret =3D btrfs_sysfs_add_space_info_type(space_info); if (ret) - return ret; + goto out_free; =20 list_add(&space_info->list, &info->space_info); if (flags & BTRFS_BLOCK_GROUP_DATA) info->data_sinfo =3D space_info; =20 return ret; + +out_free: + kfree(space_info); + return ret; } =20 int btrfs_init_space_info(struct btrfs_fs_info *fs_info) --=20 2.25.1