@@ -605,11 +605,14 @@ impl fmt::Display for SocketAddrV4 {
605
605
if f. precision ( ) . is_none ( ) && f. width ( ) . is_none ( ) {
606
606
write ! ( f, "{}:{}" , self . ip( ) , self . port( ) )
607
607
} else {
608
- const IPV4_SOCKET_BUF_LEN : usize = 21 ;
608
+ const IPV4_SOCKET_BUF_LEN : usize = ( 3 * 4 ) // the segments
609
+ + 3 // the separators
610
+ + 1 + 5 ; // the port
609
611
let mut buf = [ 0 ; IPV4_SOCKET_BUF_LEN ] ;
610
612
let mut buf_slice = & mut buf[ ..] ;
611
613
612
- // Unwrap is fine because writing to a buffer is infallible
614
+ // Unwrap is fine because writing to a sufficiently-sized
615
+ // buffer is infallible
613
616
write ! ( buf_slice, "{}:{}" , self . ip( ) , self . port( ) ) . unwrap ( ) ;
614
617
let len = IPV4_SOCKET_BUF_LEN - buf_slice. len ( ) ;
615
618
@@ -643,7 +646,8 @@ impl fmt::Display for SocketAddrV6 {
643
646
let mut buf = [ 0 ; IPV6_SOCKET_BUF_LEN ] ;
644
647
let mut buf_slice = & mut buf[ ..] ;
645
648
646
- // Unwrap is fine because writing to a buffer is infallible
649
+ // Unwrap is fine because writing to a sufficiently-sized
650
+ // buffer is infallible
647
651
write ! ( buf_slice, "[{}]:{}" , self . ip( ) , self . port( ) ) . unwrap ( ) ;
648
652
let len = IPV6_SOCKET_BUF_LEN - buf_slice. len ( ) ;
649
653
0 commit comments