From nobody Mon May 25 01:18:33 2026 Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) (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 AD6742798F8 for ; Wed, 20 May 2026 01:10:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779239425; cv=none; b=uOu06AvNVUSl6PbwBS5IAkUHfiXFvMelppsSLCW/LGtLWF3gvL+mHibfx/Gx1UWlikxSoeE+14tNO/wY/dl2iJ2jZjcNLSHxScV9DYgn4ufojrDJJ+c7jKgPM2sqAlQ9YtklHkE1SLkpnv+QPMm/EBNgtU9lOFc4mUQTgctb0hg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779239425; c=relaxed/simple; bh=OILMsCqnedlTtMIo8d33ANXN2en3779rZ87MMLYVqi8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=KOfyp6cWMtf6WMIYP5DJi34fnfg6tzG7avMSCsUdxcJ8oGLVi5+QkCVU6wa20W38EnfCPFNPDziIww4OcK53RgJvvLebMQsNGX38OQ63cEFB17l6VHx8mQyPq2OZCkz7QwWOZdANIrZPt4yed+znvTjZi7tFoNDqQ1RHPUQejZA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=uZcoWzC6; arc=none smtp.client-ip=209.85.167.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="uZcoWzC6" Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-5a4002b1183so337364e87.3 for ; Tue, 19 May 2026 18:10:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1779239422; x=1779844222; 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=z8CY5okN4WA8PTCFM86KJ9V6OUOBWWwS3raF/IMPnCg=; b=uZcoWzC6HGt21L8CSYz1K95MKnojvs6/8NdjevXPpz/8X1cpzbPaA/pZew9GXGhBBl C9PaCoHvtrZ53cn1XnfzVMjiPEskJUfIAUdRYZwueAVOAMTyTG1TjwkVrJOxOdYjlK1D dQy1T5KkSbp3KZwlDXA1nn5b274zPVzI5Ot9dGrTBbb1QP8c1NqfeA+NJw7XOIAGal3z tEVSexcMjUBeIwYwEXTWnPDcdzl9S0s9A1QANXCw+F0J1V170D1cn+6dmb6TeWsRvz8Q tJxdfqhOIbx+fIwJQSlXi1jGYTzrkDcUWIOS/4F/e6JcNHIp1lm2S8MH4FLk0wfxs1YK bk3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779239422; x=1779844222; 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=z8CY5okN4WA8PTCFM86KJ9V6OUOBWWwS3raF/IMPnCg=; b=eaMToX0S4EXsd+V8yZQmvZ0RDgs8pqRIpuwDktCNLUiHu83GuaprPjvfU6qxoZcgz6 7D0kAiIJIwVjTXFjKGhWkcr5IFVpVz2YUNRB5wOi8mNV/N/nAKZNB1LVqVX9vsvjeTa7 Nz02WZ2BIi4OFk1n4S1XH5YL6mjQ+kW0CxcMt01IMfv/WBRI7TclFzPSzFHvAtOfFXWH Q76BNaJPencH/EoSJzUVKlZzWyb5zJkiAdvxF0UsI/7g7FlTmKpPfXlqtMqvtPh7qt9q G2iiL+oFCg8bUzuEiyDAUAPpZ9+jFGCupgf7bypnsxBwhd5y8Ggu/FSzC4onVlrQCbmW 77+w== X-Forwarded-Encrypted: i=1; AFNElJ/o8QvMJTzT+iNRjTj6CSO5fwcsvBbmA1YZuj0neOWGy2lRbVej2aliSJSGVPEcXcZbHEwgkgw+Xfv6v7o=@vger.kernel.org X-Gm-Message-State: AOJu0YwwrPKBm8lqSL00KXXO34iVChG8izCmO4fJNhl3aiV28ysJbHn7 1QLJxiy5idxV47jplshjU6eYIJwF88gLSt550BbaungbmSWGogIJa2/TuCevwMfJvQA= X-Gm-Gg: Acq92OFwacl0rhKhGzc3vc+Zt5beCvi7HN5SuMHWTMeVwXOpJ8sQGdujnxrZUq1jlGq NDXhAnTUh8iGG0NZGrwXe6vy0h1lmSPi/c7Av90PH2o3Id8ApnEgIfALsH+Wp0b2g/3C7r0Y5/2 XRU8YGLSjmn7fxgnnbQpQhgfcSI1Rte33N0M9reEP/lnkPcTLe6uv5USeUMDQDnVdfBMmJbN55e TwpEvQQxACfeosnjgdMjwapnJNCc2TdLuuNs+3RcJzWwsSDzcBdmys6JCK1zdRsiWD2eWiG27jt +/qSm2ONKzmuKnvbR2GbFsFFoiS1SuP8UlokbCn+tDZaXU/SGFFgjD7iLVzILoHA0oKT3DFPmdX sRKWCQO6YfZOkFmwtqw3L/NTdR/z1M4Oq4PPMzwoyQ/vQr+Hf4v/KGd7fF91l2cVQuOuhgtFKnX lixPq+tu+nbEClEmXZizfCyZ5Zqocv8VaVO9xX6vk4+P8LX4HzAIQjqjPSeSSvLYMJFw== X-Received: by 2002:a05:6512:1249:b0:5a4:a4c:6595 with SMTP id 2adb3069b0e04-5aa0e74584fmr3901637e87.4.1779239421757; Tue, 19 May 2026 18:10:21 -0700 (PDT) Received: from thyme.. (91-159-24-186.elisa-laajakaista.fi. [91.159.24.186]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5a9164cf0a5sm4457297e87.75.2026.05.19.18.10.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2026 18:10:21 -0700 (PDT) From: Vladimir Zapolskiy To: Vlastimil Babka , Harry Yoo , Andrew Morton , Christoph Lameter , Hao Li Cc: David Rientjes , Roman Gushchin , Hugh Dickins , Vladimir Zapolskiy , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm/slab: fix probable issue of dentries registration under /sys/kernel/slab Date: Wed, 20 May 2026 04:10:19 +0300 Message-ID: <20260520011019.1707010-1-vladimir.zapolskiy@linaro.org> X-Mailer: git-send-email 2.49.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" L2TP/IP and L2TP/IPv6 protocol names contain a slash symbol, however these names are blindly used as symlinks to slab cache objects registered under /sys/kernel/slab. This kind of symlink creation is successful, but its dentry is obviously broken, as well it breaks the access to the list of /sys/kernel/slab dentries. Likely L2TP protocol renames cannot be done, since the defined protocol names are exposed over /proc/net/protocols for years, but the symlink names can be renamed, because they are yet to be properly created, and this should be eventually done by this change. The problem manifests itself, if CONFIG_L2TP_IP build symbol is selected. Fixes: 81819f0fc8285 ("SLUB core") Signed-off-by: Vladimir Zapolskiy --- mm/slub.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/mm/slub.c b/mm/slub.c index 0baa906f39ab..843bed864a7f 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -9634,6 +9634,7 @@ static struct saved_alias *alias_list; int sysfs_slab_alias(struct kmem_cache *s, const char *name) { struct saved_alias *al; + const char *al_name; =20 if (slab_state =3D=3D FULL) { /* @@ -9652,8 +9653,27 @@ int sysfs_slab_alias(struct kmem_cache *s, const cha= r *name) if (!al) return -ENOMEM; =20 + al_name =3D kstrdup_const(name, GFP_KERNEL); + if (!al_name) { + kfree(al); + return -ENOMEM; + } + + if (strchr(al_name, '/')) { + char *n; + + n =3D kstrdup(al_name, GFP_KERNEL); + kfree_const(al_name); + if (!n) { + kfree(al); + return -ENOMEM; + } + + al_name =3D strreplace(n, '/', '_'); + } + al->s =3D s; - al->name =3D name; + al->name =3D al_name; al->next =3D alias_list; alias_list =3D al; kmsan_unpoison_memory(al, sizeof(*al)); @@ -9691,6 +9711,7 @@ static int __init slab_sysfs_init(void) if (err) pr_err("SLUB: Unable to add boot slab alias %s to sysfs\n", al->name); + kfree_const(al->name); kfree(al); } =20 --=20 2.49.0