Skip to content

Conversation

@johnsu
Copy link

@johnsu johnsu commented Feb 1, 2025

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 PeersList is 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 PeersList and 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.

@jeffward01
Copy link

@alanmcgovern bump 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Exception in SimpleTorrentManager.GetPeers

2 participants