server: Avoid accessing free'd thread pointers.
mike at codeweavers.com
Fri Nov 10 04:53:01 CST 2006
Eric Pouech wrote:
> well, the kill_thread in that case in only done when the waiting thread
> also died while waiting (ie has been killed by some other way) (in
> normal cases, the wait operation on the waiting side would just return
> an error code)
> the I'm not still conviced this path is actually executed in that case
When the process is terminating because the user pressed ^C, the waiting
thread will already be dead, so send_thread_wakeup will kill it.
> what lead you to write the patch ?
valgrind reported that wineserver accessed free'd memory.
On IRC, Alexandre suggested the fix is to change kill_process() to keep
killing the first thread in the list until there's no more threads.
More information about the wine-devel