nuttx/sched/signal
ligd 415fe60695 signal: use work_cancel_sync() to fix used after free
bug:

user thread:                             hpwork:
timer_create() with SIGEV_THREAD
timer_settime()
    irq -> work_queue()                  add nxsig_notification_worker to Q
timer_delete()
    nxsig_cancel_notification()
                                         call nxsig_notification_worker()
    work_cancel()
    timer_free()
                                         nxsig_notification_worker() used after free

root cause:
work_cancel() can't cancel work completely, the worker may alreay be running.

resolve:
use work_cancel_sync() API to cancel the work completely

Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-09-19 15:52:48 +08:00
..
CMakeLists.txt cmake:complete missing changes during cmake reforming for sched 2023-09-08 21:20:16 +03:00
Make.defs
sig_action.c
sig_allocpendingsigaction.c mm/alloc: remove all unnecessary cast for alloc 2023-08-30 14:34:20 +08:00
sig_cleanup.c
sig_default.c
sig_deliver.c
sig_dispatch.c mm/alloc: remove all unnecessary cast for alloc 2023-08-30 14:34:20 +08:00
sig_findaction.c
sig_initialize.c mm/alloc: remove all unnecessary cast for alloc 2023-08-30 14:34:20 +08:00
sig_kill.c
sig_lowest.c
sig_nanosleep.c
sig_notification.c signal: use work_cancel_sync() to fix used after free 2023-09-19 15:52:48 +08:00
sig_pause.c
sig_pending.c
sig_ppoll.c
sig_procmask.c
sig_pselect.c
sig_queue.c
sig_releasependingsigaction.c
sig_releasependingsignal.c
sig_removependingsignal.c
sig_sleep.c
sig_suspend.c
sig_tgkill.c
sig_timedwait.c
sig_unmaskpendingsignal.c
sig_usleep.c
sig_waitinfo.c
signal.h