When the user closes an uv_poll_t handle, there may still be an outstanding AFD_POLL request. Libuv can't cancel this AFD_POLL request directly, so it has to submit another which makes the the previous poll request return. Libuv completely forgets about the "canceling" AFD_POLL request, but at some point in time it may complete and store its result somewhere in memory. Without this patch the result of the canceling poll request is written somewhere on the stack, which sometimes causes stack corruption. This patch ensures that the result is written to some static scratch space where it can do no harm. PR-URL: https://github.com/libuv/libuv/pull/49 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Marc Schlaich <marc.schlaich@gmail.com> Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com> |
||
|---|---|---|
| .. | ||
| unix | ||
| win | ||
| fs-poll.c | ||
| inet.c | ||
| uv-common.c | ||
| uv-common.h | ||
| version.c | ||