diff options
| author | Shell <[email protected]> | 2024-03-02 16:05:19 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-03-02 16:05:19 +0800 |
| commit | 53754ff50acfba0ef4ebae21150b49762c5919ef (patch) | |
| tree | 43454a346200dfb971449588b7a74f82460756ac /src | |
| parent | 00c6800e4e532b6996bc9cb3ce0e8e4cffed2245 (diff) | |
[fixup] check NULL pointer before access (#8573)
Signed-off-by: Shell <[email protected]>
Diffstat (limited to 'src')
| -rw-r--r-- | src/scheduler_mp.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/scheduler_mp.c b/src/scheduler_mp.c index 1a6c5ae983..7397e1071e 100644 --- a/src/scheduler_mp.c +++ b/src/scheduler_mp.c @@ -1255,8 +1255,15 @@ rt_uint16_t rt_critical_level(void) current_thread = rt_cpu_self()->current_thread; - /* the necessary memory barrier is done on irq_(dis|en)able */ - critical_lvl = RT_SCHED_CTX(current_thread).critical_lock_nest; + if (current_thread) + { + /* the necessary memory barrier is done on irq_(dis|en)able */ + critical_lvl = RT_SCHED_CTX(current_thread).critical_lock_nest; + } + else + { + critical_lvl = 0; + } rt_hw_local_irq_enable(level); return critical_lvl; |
