@@ -86,9 +86,61 @@ var parseAddrsOnDarwinLittleEndianTests = []parseAddrsOnDarwinTest{
8686 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0x00 , 0x00 ,
8787 },
8888 []Addr {
89- & Inet6Addr {IP : [16 ]byte { 0xfd , 0x84 , 0x1b , 0x4e , 0x62 , 0x81 }},
90- & Inet6Addr {IP : [16 ]byte { 0xfe , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xf2 , 0x2f , 0x4b , 0xff , 0xfe , 0x09 , 0x3b , 0xff }, ZoneID : 33 },
91- & Inet6Addr {IP : [16 ]byte { 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ,}},
89+ & Inet6Addr {IP : [16 ]byte {0xfd , 0x84 , 0x1b , 0x4e , 0x62 , 0x81 }},
90+ & Inet6Addr {IP : [16 ]byte {0xfe , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xf2 , 0x2f , 0x4b , 0xff , 0xfe , 0x09 , 0x3b , 0xff }, ZoneID : 33 },
91+ & Inet6Addr {IP : [16 ]byte {0xff , 0xff , 0xff , 0xff , 0xff , 0xff }},
92+ nil ,
93+ nil ,
94+ nil ,
95+ nil ,
96+ nil ,
97+ },
98+ },
99+ // golang/go#70528, the kernel can produce addresses of length 0
100+ {
101+ syscall .RTA_DST | syscall .RTA_GATEWAY | syscall .RTA_NETMASK ,
102+ parseKernelInetAddr ,
103+ []byte {
104+ 0x00 , 0x1e , 0x00 , 0x00 ,
105+
106+ 0x1c , 0x1e , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
107+ 0xfe , 0x80 , 0x00 , 0x21 , 0x00 , 0x00 , 0x00 , 0x00 ,
108+ 0xf2 , 0x2f , 0x4b , 0xff , 0xfe , 0x09 , 0x3b , 0xff ,
109+ 0x00 , 0x00 , 0x00 , 0x00 ,
110+
111+ 0x0e , 0x1e , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
112+ 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0x00 , 0x00 ,
113+ },
114+ []Addr {
115+ nil ,
116+ & Inet6Addr {IP : [16 ]byte {0xfe , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xf2 , 0x2f , 0x4b , 0xff , 0xfe , 0x09 , 0x3b , 0xff }, ZoneID : 33 },
117+ & Inet6Addr {IP : [16 ]byte {0xff , 0xff , 0xff , 0xff , 0xff , 0xff }},
118+ nil ,
119+ nil ,
120+ nil ,
121+ nil ,
122+ nil ,
123+ },
124+ },
125+ // Additional case: golang/go/issues/70528#issuecomment-2498692877
126+ {
127+ syscall .RTA_DST | syscall .RTA_GATEWAY | syscall .RTA_NETMASK ,
128+ parseKernelInetAddr ,
129+ []byte {
130+ 0x84 , 0x00 , 0x05 , 0x04 , 0x01 , 0x00 , 0x00 , 0x00 , 0x03 , 0x08 , 0x00 , 0x01 , 0x15 , 0x00 , 0x00 , 0x00 ,
131+ 0x1B , 0x01 , 0x00 , 0x00 , 0xF5 , 0x5A , 0x00 , 0x00 , 0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
132+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
133+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
134+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
135+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x10 , 0x02 , 0x00 , 0x00 ,
136+ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 ,
137+ 0x14 , 0x12 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
138+ 0x00 , 0x00 , 0x00 , 0x00 ,
139+ },
140+ []Addr {
141+ & Inet4Addr {IP : [4 ]byte {0x0 , 0x0 , 0x0 , 0x0 }},
142+ nil ,
143+ nil ,
92144 nil ,
93145 nil ,
94146 nil ,
0 commit comments