Files
clamav/libclamav/c++/bytecode2llvm.cpp
Török Edvin bb5572cbe1 bytecode_watchdog: fix use of unaddressable data
If the watchdog thread is sleeping on a watchdog_item and
vm_execute_jit calls watchdog_disarm and returns before the watchdog wakes up,
then the watchdog thread will wake up and try to use the now uninitialized
item->abs_timeout.

Fix this by adding an in_use flag, and another condition variable.
watchdog_disarm now wakes the watchdog thread,
and waits till it releases the item.

Thanks to Michael Scheidell for providing feedback on this bug.
2011-06-30 14:28:44 +03:00

79 KiB