|
@@ -329,7 +329,7 @@ int ip_options_compile(struct net *net,
|
|
|
pp_ptr = optptr + 2;
|
|
|
goto error;
|
|
|
}
|
|
|
- if (skb) {
|
|
|
+ if (rt) {
|
|
|
memcpy(&optptr[optptr[2]-1], &rt->rt_spec_dst, 4);
|
|
|
opt->is_changed = 1;
|
|
|
}
|
|
@@ -371,7 +371,7 @@ int ip_options_compile(struct net *net,
|
|
|
goto error;
|
|
|
}
|
|
|
opt->ts = optptr - iph;
|
|
|
- if (skb) {
|
|
|
+ if (rt) {
|
|
|
memcpy(&optptr[optptr[2]-1], &rt->rt_spec_dst, 4);
|
|
|
timeptr = (__be32*)&optptr[optptr[2]+3];
|
|
|
}
|
|
@@ -603,7 +603,7 @@ int ip_options_rcv_srr(struct sk_buff *skb)
|
|
|
unsigned long orefdst;
|
|
|
int err;
|
|
|
|
|
|
- if (!opt->srr)
|
|
|
+ if (!opt->srr || !rt)
|
|
|
return 0;
|
|
|
|
|
|
if (skb->pkt_type != PACKET_HOST)
|