From 6032442fa59b3862f784e37a8f6e1c3fc68fda9a Mon Sep 17 00:00:00 2001 From: Julian Anastasov Date: Wed, 18 Jul 2012 21:34:24 +0000 Subject: [PATCH] --- yaml --- r: 315491 b: refs/heads/master c: 6255e5ead00cf96554f623ba51e2ac4c8ac27276 h: refs/heads/master i: 315489: c67ab37ec503d30fe730283b6f9277dedd558416 315487: c6c313b998d59a6b59602c4a93ba63e9795efe7f v: v3 --- [refs] | 2 +- trunk/net/ipv4/ip_options.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 3c25c5a90ebd..73d9f14979bd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a16a0d2fb8e0726f5d92572cc6ba5ba52f5cdcc1 +refs/heads/master: 6255e5ead00cf96554f623ba51e2ac4c8ac27276 diff --git a/trunk/net/ipv4/ip_options.c b/trunk/net/ipv4/ip_options.c index a19d6471a318..1dc01f9793d5 100644 --- a/trunk/net/ipv4/ip_options.c +++ b/trunk/net/ipv4/ip_options.c @@ -93,7 +93,6 @@ int ip_options_echo(struct ip_options *dopt, struct sk_buff *skb) unsigned char *sptr, *dptr; int soffset, doffset; int optlen; - __be32 daddr; memset(dopt, 0, sizeof(struct ip_options)); @@ -105,8 +104,6 @@ int ip_options_echo(struct ip_options *dopt, struct sk_buff *skb) sptr = skb_network_header(skb); dptr = dopt->__data; - daddr = fib_compute_spec_dst(skb); - if (sopt->rr) { optlen = sptr[sopt->rr+1]; soffset = sptr[sopt->rr+2]; @@ -180,6 +177,8 @@ int ip_options_echo(struct ip_options *dopt, struct sk_buff *skb) doffset -= 4; } if (doffset > 3) { + __be32 daddr = fib_compute_spec_dst(skb); + memcpy(&start[doffset-1], &daddr, 4); dopt->faddr = faddr; dptr[0] = start[0];