perfcounters: fix use after free in perf_release()
authorMike Galbraith <efault@gmx.de>
Wed, 11 Feb 2009 09:53:37 +0000 (10:53 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 11 Feb 2009 10:30:10 +0000 (11:30 +0100)
commit5af759176cc767e7426f89764bde4996ebaaf419
tree0dcd0dafb569755f96fc6ee99db83259ecf5442c
parentffc046729381ec039a87dc2c00d2899fcc8785e3
perfcounters: fix use after free in perf_release()

running...

  while true; do
    foo -d 1 -f 1 -c 100000 & sleep 1
    kerneltop -d 1 -f 1 -e 1 -c 25000 -p `pidof foo`
  done

  while true; do
    killall foo; killall kerneltop; sleep 2
  done

...in two shells with SLUB_DEBUG enabled produces flood of:
BUG task_struct: Poison overwritten.

Fix the use-after-free bug in perf_release().

Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/perf_counter.c