libuv/src
Jacob Segal 095e07cd79 android: fix blocking recvmsg due to netlink bug
Code was assuming that the nl_pid was always equal to the process id.
As the netlink documentation says, "nl_pid is usually the PID of the
process owning the destination socket. However, nl_pid identifies a
netlink socket, not a process".

There are two cases in which this assumption breaks down. The first is
that some other part of the application has already bound a netlink
socket with a nl_pid equal to the PID of the process. The second is
Android version 5.0 where it appears that nl_pid is not always defaulted
to the PID of the process.

The result of this bad assumption is that netlink message responses to
our request are ignored due to having a bad nl_pid. We eventually run
out of messages on the netlink socket and block forever awaiting our
response.

PR-URL: https://github.com/libuv/libuv/pull/1451
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-08-08 15:06:24 +02:00
..
unix android: fix blocking recvmsg due to netlink bug 2017-08-08 15:06:24 +02:00
win win, process: support semicolons in PATH variable 2017-07-27 12:34:31 +02:00
fs-poll.c unix, win: count null byte on UV_ENOBUFS 2016-03-03 09:23:10 +01:00
heap-inl.h heap: fix heap_remove() 2014-05-23 20:04:42 +04:00
inet.c win: use the MSVC provided snprintf where possible 2015-09-29 09:01:33 +02:00
queue.h unix: use QUEUE_MOVE when iterating over lists 2015-10-08 21:47:43 +02:00
threadpool.c unix,windows: refactor request init logic 2017-03-21 16:14:09 +01:00
uv-common.c fs: fix crash in uv_fs_scandir_next 2017-01-17 21:15:43 -06:00
uv-common.h unix,windows: refactor request init logic 2017-03-21 16:14:09 +01:00
version.c core: add UV_VERSION_HEX macro 2015-06-29 23:08:41 +02:00