This prevents signed integer overflow in LocalServiceInfo::nScore by saturating at std::numeric_limits<int>::max() in SeenLocal().
The nScore field could overflow from INT_MAX to INT_MIN when incremented during version handshakes, causing undefined behavior.
I implemented saturation in SeenLocal() to cap nScore at std::numeric_limits<int>::max() instead of allowing overflow. This prevents undefined behavior while maintaining memory efficiency - after 2 billion connections, the matter is settled.
- Added test case
LocalAddress_nScore_Overflowthat verifies saturation behavior - Test confirms
nScoreremains at max value after multipleSeenLocal()calls
Fixes #24049