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 |
- |
|
|