Oleg Nesterov
d02479bdeb
posix-timers: fix creation race
...
sys_timer_create() sets ->it_process and unlocks ->siglock, then checks
tmr->it_sigev_notify to define if get_task_struct() is needed.
We already passed ->it_id to the caller, another thread can delete this timer
and free its memory in between.
As a minimal fix, move this code under ->siglock, sys_timer_delete() takes it
too before calling release_posix_timer(). A proper serialization would be to
take ->it_lock, we add a partly initialized timer on posix_timers_id, not
good.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru >
Cc: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2007-08-22 19:52:46 -07:00
..
2007-08-22 19:52:44 -07:00
2007-08-11 15:47:40 -07:00
2007-08-11 15:47:42 -07:00
2007-07-25 10:09:20 -07:00
2007-07-17 10:23:02 -07:00
2007-07-16 09:05:47 -07:00
2007-07-22 09:57:02 -04:00
2007-08-22 19:52:44 -07:00
2007-02-12 09:48:32 -08:00
2007-05-11 08:29:36 -07:00
2007-05-09 12:30:49 -07:00
2007-07-16 12:05:49 +03:00
2007-07-18 08:47:40 -07:00
2007-07-09 18:52:00 +02:00
2007-05-08 11:15:04 -07:00
2006-12-07 08:39:46 -08:00
2007-08-03 15:06:33 -07:00
2007-07-20 10:11:58 +09:00
2007-06-18 09:48:41 -07:00
2007-08-22 19:52:44 -07:00
2007-07-25 10:17:44 -07:00
2007-05-08 11:15:13 -07:00
2007-07-17 10:23:03 -07:00
2006-12-07 08:39:36 -08:00
2007-07-26 13:40:43 +02:00
2007-05-08 11:15:07 -07:00
2007-07-16 09:05:50 -07:00
2007-07-26 11:33:06 -07:00
2007-08-11 15:47:42 -07:00
2007-07-20 12:01:34 -07:00
2007-07-31 15:39:42 -07:00
2006-12-04 02:00:22 -05:00
2006-12-07 08:39:43 -08:00
2007-07-31 15:39:40 -07:00
2007-07-19 10:04:49 -07:00
2007-07-16 09:05:47 -07:00
2007-07-17 10:23:03 -07:00
2007-02-14 08:09:54 -08:00
2007-07-19 10:04:49 -07:00
2007-07-20 10:11:58 +09:00
2007-07-17 10:23:02 -07:00
2007-07-30 14:25:23 -07:00
2007-07-16 09:05:48 -07:00
2007-07-09 18:51:58 +02:00
2007-08-22 19:52:46 -07:00
2007-08-21 20:23:53 -07:00
2007-08-11 15:47:42 -07:00
2007-07-19 10:04:46 -07:00
2007-05-09 12:30:56 -07:00
2007-07-17 10:23:02 -07:00
2007-07-31 15:39:42 -07:00
2007-04-28 14:15:59 -04:00
2007-07-16 09:05:49 -07:00
2007-07-16 09:05:49 -07:00
2007-07-17 10:23:02 -07:00
2007-07-16 09:05:49 -07:00
2007-07-19 10:04:49 -07:00
2007-08-10 23:05:11 +02:00
2007-08-12 18:08:19 +02:00
2007-08-09 11:16:49 +02:00
2007-08-09 11:16:49 +02:00
2007-08-02 17:41:40 +02:00
2007-08-12 18:08:19 +02:00
2007-07-16 09:05:50 -07:00
2007-08-03 15:06:33 -07:00
2007-07-17 10:23:02 -07:00
2007-07-17 10:23:02 -07:00
2007-07-19 10:04:49 -07:00
2007-07-16 09:05:41 -07:00
2007-07-16 09:05:48 -07:00
2007-07-29 16:45:38 -07:00
2007-08-19 10:12:32 -07:00
2007-07-16 09:05:46 -07:00
2007-07-25 10:09:20 -07:00
2007-07-20 11:26:47 -07:00
2007-07-25 10:09:20 -07:00
2007-05-08 11:15:07 -07:00
2007-07-16 09:05:47 -07:00
2007-07-20 10:11:58 +09:00
2007-07-16 09:05:47 -07:00
2007-07-16 09:05:48 -07:00
2007-05-09 08:57:56 +02:00
2007-07-17 10:23:03 -07:00