Miscellaneous bug fixes and improvements #2679
Merged
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.
Constify read-only data
Declare read-only data arrays const, to warn on accidental modification and let compilers place them in read-only memory sections.
De-duplicate strtoupper()
Avoid the duplicate definition of strtoupper() in websocket.c, just use the one from util.h.
Avoid UB in character checking functions
The functions classifying characters like isspace(3) require the input to be of type unsigned char or EOF.
Avoid out-of-bounds access in serial processing mode
When using just one job for processing the input lines do not use the out-of-bounds index 1 instead of the valid one 0.
This currently seems to only work since the stack space of the in this case unused threads array is used.
Insert the status code in the correct position
Avoid out-of-bounds access for invalid HTTP status codes
Avoid array access in case the status code is less than 0 or bigger than 599.
Also reduce the size of the codes array.
Avoid unnecessary string copies
Do not duplicate the strings for enumeration keys, as they are read-only.