RT-Thread Version
master(v5.2.2)
Affected area
Other / Not sure
Hardware/BSP vendor
Not applicable / Other
Architecture
Not applicable / Other
Board and hardware details
sdio
Develop Toolchain
RT-Thread Studio
Describe the bug
问题:反复执行 SDIO 初始化 / 反初始化时存在内存泄漏:每次调用 sdio_read_cis() 都会泄漏内存,且之后调用 sdio_free_cis() 也无法回收
原因:在 sdio.c 的 sdio_read_cis() 中,每轮循环都会为一个 CIS 元组分配节点,但在随后的 switch (tpl_code) 中,以下分支既没有 rt_free(curr) ,也没有将 curr 挂入 func->tuples 链表,只有 default 分支会把节点挂入 func->tuples 链表,从而由 sdio_free_cis() 统一释放。
Other additional context

RT-Thread Version
master(v5.2.2)
Affected area
Other / Not sure
Hardware/BSP vendor
Not applicable / Other
Architecture
Not applicable / Other
Board and hardware details
sdio
Develop Toolchain
RT-Thread Studio
Describe the bug
问题:反复执行 SDIO 初始化 / 反初始化时存在内存泄漏:每次调用 sdio_read_cis() 都会泄漏内存,且之后调用 sdio_free_cis() 也无法回收
原因:在 sdio.c 的 sdio_read_cis() 中,每轮循环都会为一个 CIS 元组分配节点,但在随后的 switch (tpl_code) 中,以下分支既没有 rt_free(curr) ,也没有将 curr 挂入 func->tuples 链表,只有 default 分支会把节点挂入 func->tuples 链表,从而由 sdio_free_cis() 统一释放。
Other additional context