Fix for issue #488: ensure that the number of iovec entries does not exceed __IOV_MAX.#489
Merged
bradh352 merged 2 commits intoOct 23, 2022
Conversation
…ds the limit, writev() will fail.
Contributor
|
This is Linux specific. On Windows, I get: src/lib/ares_process.c(259,23): error: use of undeclared identifier '__IOV_MAX'
if(n >= __IOV_MAX)
^ |
Contributor
Author
|
Indeed, this was not platform-independent. It also failed on FreeBSD. I have no Windows system for testing. I updated the code, according to the documentation in the writev() manpage. IOV_MAX is used on FreeBSD, on modern Linux the limit is from sysconf(_SC_IOV_MAX), on very old Linux it is 16. The default of 16 is also used by the BOOST libraries, in case of IOV_MAX and sysconf(_SC_IOV_MAX) not being possible. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fix for issue #488: ensure that the number of iovec entries does not exceed __IOV_MAX.