public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v4] usb: gadget: g_dnl: Fix NULLPTR dereference when serial# is unset
@ 2025-01-28  3:09 Michael Ferolito
  2025-01-28  5:41 ` Heiko Schocher
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Michael Ferolito @ 2025-01-28  3:09 UTC (permalink / raw)
  To: u-boot; +Cc: Michael Ferolito, Marek Vasut, Heiko Schocher, Kyungmin Park

The current behaviour of this function will dereference a null pointer
if the serial# environment variable is unset. This was discovered on a
board where U-Boot did not have access to the first 256MB of ram,
resulting in a board crash.
In the event that U-Boot has full access to memory, it will still read
from address 0, which is probably not optimal.
This simple check is enough to fix it

Signed-off-by: Michael Ferolito <michaelsunn101@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
---
 drivers/usb/gadget/g_dnl.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index 631969b340..f2540eb6de 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -207,7 +207,8 @@ void g_dnl_clear_detach(void)
 static int on_serialno(const char *name, const char *value, enum env_op op,
 		int flags)
 {
-	g_dnl_set_serialnumber((char *)value);
+	if (value)
+		g_dnl_set_serialnumber((char *)value);
 	return 0;
 }
 U_BOOT_ENV_CALLBACK(serialno, on_serialno);
-- 
2.48.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-02-06  8:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-28  3:09 [PATCH v4] usb: gadget: g_dnl: Fix NULLPTR dereference when serial# is unset Michael Ferolito
2025-01-28  5:41 ` Heiko Schocher
2025-01-28  9:40 ` Mattijs Korpershoek
2025-01-29  5:31   ` Michael
2025-01-29  9:27     ` Mattijs Korpershoek
2025-02-06  8:08 ` Mattijs Korpershoek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox