Просмотр исходного кода

[DM][PIC] Fix #10998 (#11024)

* [DM/PIC] Fixup SMP CPU mask list when CPU < 4

* [DM][PIC] Fix #10998

The size of cpumask is `RT_CPUS_NR`, memset force to space will
overflow in stack.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
GUI 2 месяцев назад
Родитель
Сommit
944b974c1a
1 измененных файлов с 4 добавлено и 0 удалено
  1. 4 0
      components/drivers/pic/pic.c

+ 4 - 0
components/drivers/pic/pic.c

@@ -1259,6 +1259,10 @@ static int list_irq(int argc, char**argv)
             rt_memset(&cpumask[RT_CPUS_NR], ' ', 4 - RT_CPUS_NR);
         }
         rt_kputs(cpumask);
+        if (RT_CPUS_NR < 4)
+        {
+            rt_kprintf("%-*.s", 4 - RT_CPUS_NR, " ");
+        }
     #endif
 
     #ifdef RT_USING_INTERRUPT_INFO