@@ -86,9 +86,61 @@ var parseAddrsOnDarwinLittleEndianTests = []parseAddrsOnDarwinTest{
86
86
0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0x00 , 0x00 ,
87
87
},
88
88
[]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 ,
92
144
nil ,
93
145
nil ,
94
146
nil ,
0 commit comments