frankenphp
d407dcb0 - fix: reject cyclic arrays in PHP-to-Go conversion

Commit
10 days ago
fix: reject cyclic arrays in PHP-to-Go conversion goArray() and GoPackedArray() followed self-referencing arrays until the Go stack overflowed. This runs in a cgo callback, so the overflow aborted the whole process: a cyclic array reached it through frankenphp_log(), a worker callback's return value and the extension API. Mark arrays with GC_TRY_PROTECT_RECURSION while they are converted, as json_encode() does, and return an error when a cycle is found.
Author
Committer
Parents
Loading