From nobody Fri Apr 17 01:44:06 2026 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (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 3E0CE39C65B for ; Tue, 24 Feb 2026 13:27:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771939627; cv=none; b=A6o9t3ep4xTvl5ERTPfVmeHc/vJmnoLVwxjbcRLXTestGzxmXJEkO1/QlFTeWeYhP5O/X02KgJntetzGpHQ50kjlrhudmfj6uORW5FqsWDHJ8BTlzkgJMAXBqwXfWCrdSWz/vsOrTUQnOD1cGDSAX2eEL40Z16aQ0GPfWzl0D4E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771939627; c=relaxed/simple; bh=8SpNNi1ayJAt5gC7ktESwVWjn6vLZMtM1DHLO/Koa+I=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=PLwx1y8817JwG49XH+slCPgBq3bwwmYyutCw1N/qY0yqzmqeojc5074pywSF23+itaIjAbhqTQ0zP3qSe1VdAY/Tq10LPLGNSLmyiBJYsWxzIGuhNm2xe0bnMBmytRUMy8ZcJqNESafUVTNPLp5N9RjDNvatSVW+UbSvZTykqRo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com; spf=pass smtp.mailfrom=ionos.com; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b=Jqy/upLG; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ionos.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ionos.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ionos.com header.i=@ionos.com header.b="Jqy/upLG" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-4377174e1ebso4249035f8f.3 for ; Tue, 24 Feb 2026 05:27:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ionos.com; s=google; t=1771939624; x=1772544424; 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=GFbQTyVOM7RroKjlHHm350U6lcOBB7oSufXTXuhGOpo=; b=Jqy/upLGCRxQj3x3SCvLuhOg7OyBodPOBnuP++qSE3gIyWVWbEMCabBLhn3MuiIQuj bhpeWRtIB8rQZRHXNSWR9cwHTfmo+VbGmyDl/VR3kxQjGJ1T+OqUh7KokaW92CjMR1JL Gpcdp1JQRjzbL5HdymNn6aZogcpx3ZpPgojSw9cIr2brg86A1+6kwnINAeWT0W+LESez 16Vper6yBjesoPdefxJ9+WWLP3YOlvP7HNphkXvEUbSr//iydbVtX9ZSi+qrmQbBBeWD FrztH5V50MZbcQRkEJlRr/wQYghcgaQsS1PpuL5J5u554A5e8srrm8G8aagJLB97BTPm lcig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771939624; x=1772544424; 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=GFbQTyVOM7RroKjlHHm350U6lcOBB7oSufXTXuhGOpo=; b=kFC9KbhdiJp78NRTKizg6rZaT3U2nFLuBiNVWLssZIup7asdsTUOQH8b3+l6EE1j8H eAtdc03W8beZ+dAmx0eY6uraLFlswY3KN/qbAtsx/GJclI8gCmkyT2iSWo9NfsoILH4p fHHekshmiXj3rV5udXe/i5uliS8skBAKlUYi6BhuVi6atHPaGv+HPaU28PSJBzPfb3l5 ytL95/7Hv5EGrHyrHlmFQQUhlePcs+1JIXzRH2GbrQRgN17kySYf+lrGVyMC8HrM0tQ2 RLwFvSNx1gAvJR+bA5UqdqCemODXyWGQfKY3pIqJEPhUeUJHfE8baoOvCJ8N76RPGKtR +5bw== X-Forwarded-Encrypted: i=1; AJvYcCWBl8XYJkaxQdxFhvdovmENbfzgmLB/PfSCryqnalMwbj5r6gK8+T1fqA7CuJuwvb1Kz1dC3M0BpQKyczg=@vger.kernel.org X-Gm-Message-State: AOJu0YxpvjRsIylhkoiP8ZYEiSX9Y8/RvkilOULOoXJqkHHjR5ansmI3 d4uZEsHOl1GjK8HCa/ReqCSEWTVsd1ZMZFiofFDWJVNwl5+D9iN8/9Ij3l6Asf4lOvQ= X-Gm-Gg: AZuq6aI4jjM/ttQ+B6cG/cdmRzev5C1q2vCOxR8xH1EO8zQF27nbZr/kcVKZh6o0V/r 2n1dLrIRPoG7NdI3JpbPl6Xax17VozYaIrx/zDx6q9I4kZyYqwk3kTapRazCwBxA5U2u4vilL/A fSl5Ww0JG5Gzp48qqQrBOOxPX1fWNFCA6LqpJa8aRqKU2jIxalYY/rjuG4Rg1H7yjXbJSBUQPp2 T6Ps57ODRuKd5rk7lz7OgDzGLgJ4WMl6/xUGULikV0kXUiW4VCzcnAl17xUKaSBUm4q1lpGuu05 6+SEhTd/J6khJuHCucQ/booPVCBoOysGyIipqTyJf4mI+0D0u2N0Jh71zfpca7RbHdxccYBVvQv xyUopXlXbPxOeEdkXd2SGUyHpGy9/I67yGoBCji2JElCMdfNsvKDYppr61YRHANexWkuP2aAw2j Sv7ywShfK6LW4DwrXHAiRJNpw/6xqLEJIi1C3DOU+B4al7jdhE+me5TBlXFaYAIOL/EtOqZC5fd FnYTHjBbmKYQCjPsQnJoISofA== X-Received: by 2002:a05:600c:6206:b0:47d:92bb:2723 with SMTP id 5b1f17b1804b1-483a95b3e23mr185005635e9.3.1771939623542; Tue, 24 Feb 2026 05:27:03 -0800 (PST) Received: from raven.intern.cm-ag (p200300dc6f3d0100023064fffe740809.dip0.t-ipconnect.de. [2003:dc:6f3d:100:230:64ff:fe74:809]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483b820def3sm46597665e9.2.2026.02.24.05.27.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Feb 2026 05:27:03 -0800 (PST) From: Max Kellermann To: idryomov@gmail.com, amarkuze@redhat.com, ceph-devel@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Max Kellermann , stable@vger.kernel.org Subject: [PATCH] fs/ceph/mds_client: fix memory leaks in ceph_mdsc_build_path() Date: Tue, 24 Feb 2026 14:26:57 +0100 Message-ID: <20260224132657.3055222-1-max.kellermann@ionos.com> X-Mailer: git-send-email 2.47.3 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" Add __putname() calls to error code paths that did not free the "path" pointer obtained by __getname(). If ownership of this pointer is not passed to the caller via path_info.path, the function must free it before returning. Fixes: 3fd945a79e14 ("ceph: encode encrypted name in ceph_mdsc_build_path a= nd dentry release") Fixes: 550f7ca98ee0 ("ceph: give up on paths longer than PATH_MAX") Cc: stable@vger.kernel.org Signed-off-by: Max Kellermann Reviewed-by: Viacheslav Dubeyko --- fs/ceph/mds_client.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c index 23b6d00643c9..b1746273f186 100644 --- a/fs/ceph/mds_client.c +++ b/fs/ceph/mds_client.c @@ -2768,6 +2768,7 @@ char *ceph_mdsc_build_path(struct ceph_mds_client *md= sc, struct dentry *dentry, if (ret < 0) { dput(parent); dput(cur); + __putname(path); return ERR_PTR(ret); } =20 @@ -2777,6 +2778,7 @@ char *ceph_mdsc_build_path(struct ceph_mds_client *md= sc, struct dentry *dentry, if (len < 0) { dput(parent); dput(cur); + __putname(path); return ERR_PTR(len); } } @@ -2813,6 +2815,7 @@ char *ceph_mdsc_build_path(struct ceph_mds_client *md= sc, struct dentry *dentry, * cannot ever succeed. Creating paths that long is * possible with Ceph, but Linux cannot use them. */ + __putname(path); return ERR_PTR(-ENAMETOOLONG); } =20 --=20 2.47.3