|
@@ -370,7 +370,6 @@ int ip_options_compile(struct net *net,
|
|
|
}
|
|
|
switch (optptr[3]&0xF) {
|
|
|
case IPOPT_TS_TSONLY:
|
|
|
- opt->ts = optptr - iph;
|
|
|
if (skb)
|
|
|
timeptr = &optptr[optptr[2]-1];
|
|
|
opt->ts_needtime = 1;
|
|
@@ -381,7 +380,6 @@ int ip_options_compile(struct net *net,
|
|
|
pp_ptr = optptr + 2;
|
|
|
goto error;
|
|
|
}
|
|
|
- opt->ts = optptr - iph;
|
|
|
if (rt) {
|
|
|
spec_dst_fill(&spec_dst, skb);
|
|
|
memcpy(&optptr[optptr[2]-1], &spec_dst, 4);
|
|
@@ -396,7 +394,6 @@ int ip_options_compile(struct net *net,
|
|
|
pp_ptr = optptr + 2;
|
|
|
goto error;
|
|
|
}
|
|
|
- opt->ts = optptr - iph;
|
|
|
{
|
|
|
__be32 addr;
|
|
|
memcpy(&addr, &optptr[optptr[2]-1], 4);
|
|
@@ -429,12 +426,12 @@ int ip_options_compile(struct net *net,
|
|
|
pp_ptr = optptr + 3;
|
|
|
goto error;
|
|
|
}
|
|
|
- opt->ts = optptr - iph;
|
|
|
if (skb) {
|
|
|
optptr[3] = (optptr[3]&0xF)|((overflow+1)<<4);
|
|
|
opt->is_changed = 1;
|
|
|
}
|
|
|
}
|
|
|
+ opt->ts = optptr - iph;
|
|
|
break;
|
|
|
case IPOPT_RA:
|
|
|
if (optlen < 4) {
|