diff options
| author | Garrett D'Amore <garrett@damore.org> | 2017-08-07 22:56:06 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2017-08-07 22:56:06 -0700 |
| commit | ff3018ab3d5c2838f7916c5fedf916f5ce119258 (patch) | |
| tree | c6759047ce01d0ae7f12f2fb899cc13903ceeffd /src/core/socket.c | |
| parent | fe2c07b6a0dced827b7e086b39b1908d1861af39 (diff) | |
| download | nng-ff3018ab3d5c2838f7916c5fedf916f5ce119258.tar.gz nng-ff3018ab3d5c2838f7916c5fedf916f5ce119258.tar.bz2 nng-ff3018ab3d5c2838f7916c5fedf916f5ce119258.zip | |
Don't clear the AIO provider data in finish.
The finish routine can race against an asynchronous cancellation,
so we must not clear the data pointer, or we can wind up with a
NULL pointer dereference.
Diffstat (limited to 'src/core/socket.c')
| -rw-r--r-- | src/core/socket.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/socket.c b/src/core/socket.c index 57f54008..e59f6042 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -614,7 +614,7 @@ nni_sock_ep_remove(nni_sock *sock, nni_ep *ep) // Note that if the ep is not on a list, then we assume that we have // exclusive access. Therefore the check for being active need not // be locked. - if ((sock == NULL) || (!nni_list_active(&sock->s_eps, ep))) { + if (!nni_list_node_active(&ep->ep_node)) { return; } |
