From nobody Sun Dec 14 05:56:52 2025 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.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 B3A43239E97 for ; Fri, 12 Dec 2025 00:52:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765500754; cv=none; b=byFAMW6eknAcJGKFIqNaoTSlpV+zUXMO0Fg2HFPaM3Yek6HzQJrM6cbNa8Rc2r8mks+dKdvEerO5BNjQEprfv31OQ/IR3wyDoK9EFIXJW/EjAxktcFkhIC5e5eeFfdwzWVfYXkRaDBhm8Aagmr5Vs9eTHX+oGq5909mncIPLZZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765500754; c=relaxed/simple; bh=J4ELztX1+1Bn4VhjL+ba3qYZW9szCle+z/JOvLWRu80=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Im0AQWbJiyQJsjKxkmzenhS0DcSVr3uLTtHD3iZ8NdWmFHsJZ3WMCYcnxZUUaiZDNM79Ef0akARyBfYggpO7ywT0FfIrRUlO5fDl5JiCgNDSMpGDs2Jq8US1ssrfEtvWmWJU95iYpW9u8jlxclMlTxaEORoI9eBitRLWL9OPIwE= 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=fZVbLxQU; arc=none smtp.client-ip=209.85.214.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="fZVbLxQU" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2956d816c10so8419295ad.1 for ; Thu, 11 Dec 2025 16:52:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765500752; x=1766105552; 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=ooohlPAjf/xTF7J/ARjfz6I2zejWmwOZ4ZiSMO3CRwg=; b=fZVbLxQUfc4tSzcoA9o9fcu/kEPeF1Y+vxq2wQs9H50EXA5J3xqp/mVegIMXywkMHB GbVIFEKYVtigvaVtJ6/cd+zNZkxtkWunb8Ay++qom2nZDWEe1aCv22cszonFuLL1u/xK QjK5f45PNiYCRO2PCFov01kXVCU1ChCfG1QQ93exlYBMT2/RhD8G3xeoRL/iqghpX65h +C+51sYSGmMbuur3F3md9+Z0l+4qQqeN11uEYtzD2ReVBXQBBqlyWRbkJo2SQCCSJBQV LtdTUllczDU3JMR2IuaM+5obTBt6dpI+j6jw00oM7MW6vBIMoiePUcn9Gxb+oTME+dlP NgnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765500752; x=1766105552; 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=ooohlPAjf/xTF7J/ARjfz6I2zejWmwOZ4ZiSMO3CRwg=; b=kjo3oj5WWVe9TPp4GL1UVOCg+fUhofQoW0UcDQ+Ix0v1iVtTHJNhfRe0IyQ65bwTjP Ihu4o/Xd5AGA395XVucetD2htvxeDUuJv+OF6I4f8eVBwzUz2CiT0s2wYSD2kK2b2Z5Q RCCVo7WabZP7pCY8Ok004QkxE8bJS+w0bwpvNg5DT9UJ1VZbSHmkqykJBUZ1RL9Z+po2 T3BBXEBxdpv0dVzSQeKEFahfc3QACRvNRvmfkX74Ji6hkv0bQCVwG1oB8aVwmiyeLxaD edtK+uSdFc7se4y+wMhR4j7+3OL4uM/LEn/EYd8cBaRIH98bNDTKeBRmSqK8ewy64U6v xajg== X-Forwarded-Encrypted: i=1; AJvYcCX5FMMHEL32RS2JZzzjzVFzsMSPr3rqvoI9BSARo/5PF3P3m4s2sWyTGGpmnPJhXFsf1YR12r/yGEP85Xs=@vger.kernel.org X-Gm-Message-State: AOJu0Yyd7aLPtIV8h1NO0F+66c6IApBrDjqOVN4iU0HYW1c8/8M6c2AI gqdxA6l80QHVaQdLMreBPKoFTSPO2AUNWAB8tiDfVXwuWSK7zLjB+bjd X-Gm-Gg: AY/fxX7ePBXDvLU9S5GQ08nK/k6fUijlxW2Jxl4HjUD6wy+SasdSm/+8tNCeWUtNWxs DRqNNRWlwu0QHbRsTllcd0VJd13KfywsVGL6MXmE6Ty25L7Phrs1kN3iDZ5X0Zc1OYJVTlG4ipq lHrkhONwugLQfcQkpPO4n213YosT4RW3Of1Ck8m9Fal102GBxdwTWkWlY7Zm/RgheKVNhl3DCPN p+pRdDD1PCVdW/7VXo/XlICSn+ZRzGV3zyCePN9/7CZ3gu2Yxcgh0Y1LYbbRHYF62i71qYODIYt 7aaqvCWTogGEejOitkap0cJICCI8cyfd0D+wCt+ThIzOxvmoqDooAi/DQANLtjFMWFFiY6qD1A+ yTz4Y9Zfwks1C27bUzM+M/NwXKovdK/MdFoCazKLNZaPvDLkr9KfJ05Ht+na8ItVOExSx8iLwAe NdhJzjaeUCaqqDMP14EZtsHddH0eonqaDbDDMSiBMfnY8GMQw5DvXYwGy6s2o91IYAt2g= X-Google-Smtp-Source: AGHT+IHJp/TkQFSvV3OJIJ/jWJYXIwHK410bR8I+yfx0MgpdbZNrz228EVrGpnYhhdhCWUEUpfY1eA== X-Received: by 2002:a17:903:2b03:b0:296:5e6b:e1c8 with SMTP id d9443c01a7336-29f23b50d42mr4022485ad.13.1765500751976; Thu, 11 Dec 2025 16:52:31 -0800 (PST) Received: from deepanshu-kernel-hacker.. ([2405:201:682f:389d:8924:b5f2:ed79:957e]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29eea043d21sm35206505ad.81.2025.12.11.16.52.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Dec 2025 16:52:31 -0800 (PST) From: Deepanshu Kartikey To: clm@fb.com, dsterba@suse.com Cc: wqu@suse.com, fdmanana@suse.com, linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Deepanshu Kartikey , syzbot+803e4cb8245b52928347@syzkaller.appspotmail.com Subject: [PATCH] btrfs: qgroup: fix memory leak when add_qgroup_item() fails Date: Fri, 12 Dec 2025 06:22:24 +0530 Message-ID: <20251212005224.3565337-1-kartikey406@gmail.com> 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" If add_qgroup_item() fails, we jump to the out label without freeing the preallocated qgroup structure. This causes a memory leak and triggers the ASSERT(prealloc =3D=3D NULL) assertion. Fix this by freeing prealloc and setting it to NULL before jumping to the out label when add_qgroup_item() fails. Reported-by: syzbot+803e4cb8245b52928347@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=3D803e4cb8245b52928347 Fixes: 8d54518b5e52 ("btrfs: qgroup: pre-allocate btrfs_qgroup to reduce GF= P_ATOMIC usage") Signed-off-by: Deepanshu Kartikey --- fs/btrfs/qgroup.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 9e2b53e90dcb..4dbf6d2d2aaa 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c @@ -1671,8 +1671,11 @@ int btrfs_create_qgroup(struct btrfs_trans_handle *t= rans, u64 qgroupid) } =20 ret =3D add_qgroup_item(trans, quota_root, qgroupid); - if (ret) + if (ret) { + kfree(prealloc); + prealloc =3D NULL; goto out; + } =20 spin_lock(&fs_info->qgroup_lock); qgroup =3D add_qgroup_rb(fs_info, prealloc, qgroupid); --=20 2.43.0