Potentially leaking file descriptor that may lead to fatal crash #677
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
GCDAsyncSocket.m:1620, if createSocket fails for any reason and assigns SOCKET_NULL to socket6FD, and if socket4FD was valid, socket4FD will then be closed but without being set to SOCKET_NULL, leaving it to be closed once again later during dealloc -> closeWithError:...
If any other part of the system has acquired that file descriptor in the meantime, the application can become unstable and/or crash, often with EXC_GUARD if any other part of the system has acquired and put a guard on it.
I see this error daily in about 0.02% of my user sessions.