server: Avoid accessing free'd thread pointers.

Mike McCormack 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.

Mike




More information about the wine-devel mailing list