exception in SimpleTorrentManager.GetPeers #716
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.
Fixes #715: Buffer overflow when announcing IPv4 address immediately after IPv6
This PR addresses an issue where announcing an IPv4 address immediately after an IPv6 address for the same torrent could cause an unhandled exception. The problem occurs because:
The
PeersListis not updated when its length remains the same, even if the address family changes.This leads to a mismatch between the address family of the peers in
PeersListand the newly announced address family.Consequently, when trying to copy IPv6 peer data (18 bytes) into a buffer allocated for IPv4 peers (6 bytes), a System.ArgumentException occurs during Buffer.BlockCopy.
The fix involves updating the condition for refreshing the
PeersList. Now, it checks both the count and the address family of the peers, ensuring that the list is always consistent with the current announcement type.