Avoid buffer overflow for small Basic Authentication header #841
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.
This PR fixes a crash which occurs for small input lengths of the
base64_encode
function.For a very small
auth
(length < 3), thebase64_encode
function fails when reaching the following line:https://github.com/Links2004/arduinoWebSockets/blob/751cf87b6cd684c9d339f0314a18b0ee866d449c/src/WebSockets.cpp#L582C22-L582C22
This is the error message on the console:
Probably it is due to a buffer overflow. With a minimum buffer size of 5, this crash doesn't occur anymore.
To test the fix, I called
WebSocketsClient::setAuthorization(const char * user, const char * password)
with user""
and password"b"
.Btw. and thanks for providing this library. I've been using it for years now and always enjoyed working with it.