tap_io::handle_read_event(): fix potential buffer overrun #454
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.
When accepting a packet, we may copy more than was allocated:
pkt->data is at an offset of pkt, but len is the size of the whole struct. So read() may write up to sizeof(pkt->len) over the end of the allocated pkt struct.
Fix this by reducing the maximum read size by size of pkt->len.
Found via valgrind:
Fixes: 291591d ("l2 aging added")