From nobody Mon May 25 05:54:09 2026 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) (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 E22A7299948 for ; Sun, 17 May 2026 23:18:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779059899; cv=none; b=K0/o4GkBIW6D2KQUaoPP7gBlFt2EDXkkGOGb0ACvyfJUwgU1hLc3j6Q3P2VHzxsrOyLKlWwT2IpvlZCxwMpH1bcMvlLIXoKkmRhS6Z36KqkRjebkE9Uj2bsugQ1Xt+FKvRUmFSOFUkeJ+jnxyeqy9nb9X4IvUlwWiTWNTvrZo74= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779059899; c=relaxed/simple; bh=UZn3pITGvP4LW9/RFaemW1OJ484MjcH6NtAK4eMbf3k=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=J4Iwfy8LzYQ+fgdFPA2ijztVxNdyxY367kEgC8lTW3ZSS5ZneSb1fkhdGzGnjbis2Q3RbfL2rW6UH8otppuiipw0OVnANfNTC9Ir52+z2ofEhfzM8FzUE3SxQofZApbJdP+fQoMoHlaFExOZeO1SyXOBwmjLiY6I7FTrFoRR1co= 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=QmQoRqCC; arc=none smtp.client-ip=209.85.215.176 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="QmQoRqCC" Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-c8028fa6039so1075078a12.2 for ; Sun, 17 May 2026 16:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779059897; x=1779664697; 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=2quCpGONsw646jIOKe/5cEbb5ynd3RgkQTixQnoB8es=; b=QmQoRqCCvKLWyDmPfEKoMUMM/ED8naaEh0mnzyy0VkLSwVTaS8OxtHiBHPLk8R8cWB Z8cwkGKm6vEkFxScPRfTEL2c6qqUOzdqNSVjVOxf/emIJeLvxB2Vq/PgM6Fl10tSUdHK N+LSB2FFAjVkmt9g4rLkS5Al56yJXjpCprsRjhWoRKiT319HgKpRV3cdnMv4AyfOoAMS 6V8WE9DLeKO1PeryendddWQUwMAzfz/EhWiO0mXsVSBPmyjxtic6h45og91goJGNQP56 9IFrES2fZHyXZyURPHOqTWw7PzsI9ik49cNfruMANrjeFauu8oyPDHWuaxKpHNJ996pR XmuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779059897; x=1779664697; 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=2quCpGONsw646jIOKe/5cEbb5ynd3RgkQTixQnoB8es=; b=DpIMtGOuXGd0r5eMaAqQpoGeJPR3xkxybMt7dck97fk0d9mUVwjo3i45Ex0ogVa1Gq cljXzEllLkxBot+pkXMxqbkxnKOSJwaF7RaOd8CDZ1A84Qpa0mizhQZyyxAkH/HSARha rPCmgP4A3tvnsNOgnTt6OJaB/kRsmN41tFxGXEEdqoYqyo8F4725dZxofsnHffrbuX82 aWAaGMygndmoBg6c5mlcXOlYLh0zmPye0cY1XgrsefEVvPNqw1WSHn+AVU4PqkrqDt53 dpO9AjV8Iu36YNgqrgNXA07KBmG39bFfkpaRuxBgM2V4sdsAL6iEvQUAbkiINJCZGO+7 dVfw== X-Forwarded-Encrypted: i=1; AFNElJ8SXI6p7+sUT2HoPHLtdW1meI38vMvM3+W0tnq/3x3UYVBcrvqCitXqvCP2ODb5Pmg8QQ2NO380IY3dtmA=@vger.kernel.org X-Gm-Message-State: AOJu0YyMj8ocmVF+rZzKEOLzq/83dN8xHQigXBf14LC9Id1l/hgecqHD eN6N/wIfEM98W7wYnsD5fJj4InCEa/qv9Rzo6pkTuUgLb9IPzR4xF/f6 X-Gm-Gg: Acq92OE4NlPmzQuyzpJhAzb5cI/5d2av8yzTMc/C3OyDuA+gtn+D6WTsGfeGZjDiUV+ ZTDRcTjyI0cuZ5C/g4vrggvotI35nBoHMYMv3YkOI/4zpBUoYxWa4e4T7N7XOntXyd5xLGzxgQ0 h65sfWsNn7JJ9swCJ69ZDL91exiA+8ippmOJCS4994BEjK8vb7HDLABkgsEzLoELWaWX4K1HwIP m4Y+kImFFGZFZLP2iOO4c60nrhEmhEH33fpKJsvVJTGtBDsryszpVGkaO2JNIduHJsdXFPi8D1B tGXq+upf/SUNykS+GuIrsk1O18sQ/SrC8o9q8LUxdAlr7PH0RyQYVOgTYX+Xm7ulWaYWgTo6mdx RFkDOm9eg2El00a4QM0wc6UR2EF+4NAAOeiC55ePuLlGu7e0BYh8SW5hSLuzGLaFVZtILtxgULU DWnObF+12pHhuT5DbEzNb/IiRD9PsWkSS1BipGljSkf2pPLfmoUoOEEVXvGZ+KC+XP2/BbFLS16 Agz5+vw8eCDuPFeDsCASa898ZOnIFKGmGY= X-Received: by 2002:a05:6a20:7486:b0:3a2:d79c:416d with SMTP id adf61e73a8af0-3b22ed6295emr14697035637.43.1779059897281; Sun, 17 May 2026 16:18:17 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-83f19f7ccc7sm14509038b3a.58.2026.05.17.16.18.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 May 2026 16:18:16 -0700 (PDT) From: Rosen Penev To: linux-wireless@vger.kernel.org Cc: Stanislaw Gruszka , linux-kernel@vger.kernel.org (open list) Subject: [PATCH wireless-next] wifi: rt2x00: Allocate LED names dynamically Date: Sun, 17 May 2026 16:17:59 -0700 Message-ID: <20260517231759.56638-1-rosenp@gmail.com> X-Mailer: git-send-email 2.54.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" The rt2x00 LED registration path builds LED class names from the driver and wiphy names. A fixed stack buffer can truncate those names before they are passed to the LED core. Allocate each LED name with kasprintf(), check allocation failures, and release the stored name when the LED is unregistered. Assisted-by: Codex:GPT-5.5 Signed-off-by: Rosen Penev --- .../net/wireless/ralink/rt2x00/rt2x00leds.c | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00leds.c b/drivers/net/= wireless/ralink/rt2x00/rt2x00leds.c index f5361d582d4e..8818e0b2447b 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00leds.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00leds.c @@ -100,6 +100,8 @@ static int rt2x00leds_register_led(struct rt2x00_dev *r= t2x00dev, =20 retval =3D led_classdev_register(device, &led->led_dev); if (retval) { + kfree(name); + led->led_dev.name =3D NULL; rt2x00_err(rt2x00dev, "Failed to register led handler\n"); return retval; } @@ -111,15 +113,19 @@ static int rt2x00leds_register_led(struct rt2x00_dev = *rt2x00dev, =20 void rt2x00leds_register(struct rt2x00_dev *rt2x00dev) { - char name[36]; + char *name; int retval; unsigned long on_period; unsigned long off_period; const char *phy_name =3D wiphy_name(rt2x00dev->hw->wiphy); =20 if (rt2x00dev->led_radio.flags & LED_INITIALIZED) { - snprintf(name, sizeof(name), "%s-%s::radio", - rt2x00dev->ops->name, phy_name); + name =3D kasprintf(GFP_KERNEL, "%s-%s::radio", + rt2x00dev->ops->name, phy_name); + if (!name) { + retval =3D -ENOMEM; + goto exit_fail; + } =20 retval =3D rt2x00leds_register_led(rt2x00dev, &rt2x00dev->led_radio, @@ -129,8 +135,12 @@ void rt2x00leds_register(struct rt2x00_dev *rt2x00dev) } =20 if (rt2x00dev->led_assoc.flags & LED_INITIALIZED) { - snprintf(name, sizeof(name), "%s-%s::assoc", - rt2x00dev->ops->name, phy_name); + name =3D kasprintf(GFP_KERNEL, "%s-%s::assoc", + rt2x00dev->ops->name, phy_name); + if (!name) { + retval =3D -ENOMEM; + goto exit_fail; + } =20 retval =3D rt2x00leds_register_led(rt2x00dev, &rt2x00dev->led_assoc, @@ -140,8 +150,12 @@ void rt2x00leds_register(struct rt2x00_dev *rt2x00dev) } =20 if (rt2x00dev->led_qual.flags & LED_INITIALIZED) { - snprintf(name, sizeof(name), "%s-%s::quality", - rt2x00dev->ops->name, phy_name); + name =3D kasprintf(GFP_KERNEL, "%s-%s::quality", + rt2x00dev->ops->name, phy_name); + if (!name) { + retval =3D -ENOMEM; + goto exit_fail; + } =20 retval =3D rt2x00leds_register_led(rt2x00dev, &rt2x00dev->led_qual, @@ -182,6 +196,8 @@ static void rt2x00leds_unregister_led(struct rt2x00_led= *led) led->led_dev.brightness_set(&led->led_dev, LED_OFF); =20 led->flags &=3D ~LED_REGISTERED; + kfree(led->led_dev.name); + led->led_dev.name =3D NULL; } =20 void rt2x00leds_unregister(struct rt2x00_dev *rt2x00dev) --=20 2.54.0