File tree Expand file tree Collapse file tree 2 files changed +6
-1
lines changed Expand file tree Collapse file tree 2 files changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -1451,6 +1451,9 @@ mod tests {
1451
1451
// two double colons
1452
1452
let none: Option < Ipv6Addr > = "1:2::6::8" . parse ( ) . ok ( ) ;
1453
1453
assert_eq ! ( None , none) ;
1454
+ // `::` indicating zero groups of zeros
1455
+ let none: Option < Ipv6Addr > = "1:2:3:4::5:6:7:8" . parse ( ) . ok ( ) ;
1456
+ assert_eq ! ( None , none) ;
1454
1457
}
1455
1458
1456
1459
#[ test]
Original file line number Diff line number Diff line change @@ -246,7 +246,9 @@ impl<'a> Parser<'a> {
246
246
}
247
247
248
248
let mut tail = [ 0 ; 8 ] ;
249
- let ( tail_size, _) = read_groups ( self , & mut tail, 8 - head_size) ;
249
+ // `::` indicates one or more groups of 16 bits of zeros
250
+ let limit = 8 - ( head_size + 1 ) ;
251
+ let ( tail_size, _) = read_groups ( self , & mut tail, limit) ;
250
252
Some ( ipv6_addr_from_head_tail ( & head[ ..head_size] , & tail[ ..tail_size] ) )
251
253
}
252
254
You can’t perform that action at this time.
0 commit comments