incubator-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 sched: Implement tkill/tgkill 2023-01-26 08:11:56 +02:00
sig_action.c semantic/parser: fix compile warning found by sparse 2023-05-30 23:00:00 +08:00
sig_allocpendingsigaction.c mm/alloc: remove all unnecessary cast for alloc 2023-08-30 14:34:20 +08:00
sig_cleanup.c Increase the number of real time signals. Two is not enough. 2023-03-27 16:59:04 +03:00
sig_default.c signal: SIGCONT can be caught 2023-07-12 21:27:06 +08:00
sig_deliver.c Signal must be masked when it is delivered to a signal handler 2023-05-18 01:19:12 +08:00
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 semantic/parser: fix compile warning found by sparse 2023-05-30 23:00:00 +08:00
sig_lowest.c
sig_nanosleep.c sched/signal/sig_nanosleep: fix the clock_nanosleep posix case 2023-07-23 22:02:03 -07:00
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 Increase the number of real time signals. Two is not enough. 2023-03-27 16:59:04 +03:00
sig_ppoll.c Increase the number of real time signals. Two is not enough. 2023-03-27 16:59:04 +03:00
sig_procmask.c ltp: sigprocmask fix 2023-07-31 22:29:31 -07:00
sig_pselect.c Increase the number of real time signals. Two is not enough. 2023-03-27 16:59:04 +03:00
sig_queue.c style: remove extra spaces and align parameters 2023-06-11 12:55:29 +08:00
sig_releasependingsigaction.c
sig_releasependingsignal.c
sig_removependingsignal.c
sig_sleep.c
sig_suspend.c Increase the number of real time signals. Two is not enough. 2023-03-27 16:59:04 +03:00
sig_tgkill.c sched: Implement tkill/tgkill 2023-01-26 08:11:56 +02:00
sig_timedwait.c signal: correct to const pointer for sigorset and sigandset 2023-07-05 16:26:18 +08:00
sig_unmaskpendingsignal.c Increase the number of real time signals. Two is not enough. 2023-03-27 16:59:04 +03:00
sig_usleep.c
sig_waitinfo.c
signal.h signal/nxsig_pengingset: move nxsig_pendingset to common header 2022-12-28 23:05:58 +08:00