This repository was archived by the owner on Jun 1, 2023. It is now read-only.
cv_set_call_checker in thread childs #221
Open
Description
The cv_set_call_checker API may not store thread-local callback pointers. PL_check is global, and such a callback may not be used from other threads, as it will lead to segfaults. Esp. under mod_perl and modules using old signatures hacks using the cv_set_call_checker API.
There every ENTERSUB call will try CHECKOP, accessing the hook, which might be an invalid ptr.
- Either move PL_check from G to I, interpreter-specific.
- Or refuse to set a callback in a threaded child, only in thread id 0.