|
Lines 174-180
_decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
Link Here
|
| 174 |
return; |
174 |
return; |
| 175 |
|
175 |
|
| 176 |
case IPPROTO_ICMPV6: |
176 |
case IPPROTO_ICMPV6: |
| 177 |
if (!onlyproto && pskb_may_pull(skb, nh + offset + 2 - skb->data)) { |
177 |
if (!onlyproto && (nh + offset + 2 < skb->data || |
|
|
178 |
pskb_may_pull(skb, nh + offset + 2 - skb->data))) { |
| 178 |
u8 *icmp; |
179 |
u8 *icmp; |
| 179 |
|
180 |
|
| 180 |
nh = skb_network_header(skb); |
181 |
nh = skb_network_header(skb); |
|
Lines 188-194
_decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
Link Here
|
| 188 |
#if IS_ENABLED(CONFIG_IPV6_MIP6) |
189 |
#if IS_ENABLED(CONFIG_IPV6_MIP6) |
| 189 |
case IPPROTO_MH: |
190 |
case IPPROTO_MH: |
| 190 |
offset += ipv6_optlen(exthdr); |
191 |
offset += ipv6_optlen(exthdr); |
| 191 |
if (!onlyproto && pskb_may_pull(skb, nh + offset + 3 - skb->data)) { |
192 |
if (!onlyproto && (nh + offset + 3 < skb->data || |
|
|
193 |
pskb_may_pull(skb, nh + offset + 3 - skb->data))) { |
| 192 |
struct ip6_mh *mh; |
194 |
struct ip6_mh *mh; |
| 193 |
|
195 |
|
| 194 |
nh = skb_network_header(skb); |
196 |
nh = skb_network_header(skb); |
| 195 |
- |
|
|