[Bug] sdio_read_cis() 中部分 CIS 元组分支未释放节点,反复 SDIO 初始化/反初始化导致内存泄漏

Aperta
#11,724 3 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@Huoyanlifusu ci sta già lavorando.

Dal 5/9/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug in progress
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
Image Image Image
Lingua principale
C
Stelle
12.2k
Fork
5.4k
Merge medio
4g 12h
PR unite (30g)
40

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di RT-Thread/rt-thread

Tutte le issue di RT-Thread/rt-thread

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.