netdev_upperhalf.c: modify for maybe use after free with upper pointer

avoid continuing to access the released memory after the netdev_register
error occurs.

Signed-off-by: daichuan <daichuan@xiaomi.com>
This commit is contained in:
daichuan
2025-03-06 19:53:40 +08:00
committed by Alan C. Assis
parent b2db3a6430
commit afc210667d
+7 -5
View File
@@ -1217,13 +1217,15 @@ int netdev_lower_register(FAR struct netdev_lowerhalf_s *dev,
kmm_free(upper);
dev->netdev.d_private = NULL;
}
#ifdef CONFIG_NETDEV_WORK_THREAD
for (i = 0; i < NETDEV_THREAD_COUNT; i++)
else
{
upper->tid[i] = INVALID_PROCESS_ID;
nxsem_init(&upper->sem[i], 0, 0);
nxsem_init(&upper->sem_exit[i], 0, 0);
for (i = 0; i < NETDEV_THREAD_COUNT; i++)
{
upper->tid[i] = INVALID_PROCESS_ID;
nxsem_init(&upper->sem[i], 0, 0);
nxsem_init(&upper->sem_exit[i], 0, 0);
}
}
#endif