aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/raw.c
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2005-11-20 12:23:18 +0900
committerYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2005-11-20 12:23:18 +0900
commitdf9890c31a1a447254f39e40c3fd81ad6547945b (patch)
treebf432d75796112d86d102fe721bdce93e6ad6901 /net/ipv6/raw.c
parent[IPV6]: Fix calculation of AH length during filling ancillary data. (diff)
downloadlinux-dev-df9890c31a1a447254f39e40c3fd81ad6547945b.tar.xz
linux-dev-df9890c31a1a447254f39e40c3fd81ad6547945b.zip
[IPV6]: Fix sending extension headers before and including routing header.
Based on suggestion from Masahide Nakamura <nakam@linux-ipv6.org>. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Diffstat (limited to 'net/ipv6/raw.c')
-rw-r--r--net/ipv6/raw.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index a1265a320b11..d77d3352c967 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -756,7 +756,9 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
}
if (opt == NULL)
opt = np->opt;
- opt = fl6_merge_options(&opt_space, flowlabel, opt);
+ if (flowlabel)
+ opt = fl6_merge_options(&opt_space, flowlabel, opt);
+ opt = ipv6_fixup_options(&opt_space, opt);
fl.proto = proto;
rawv6_probe_proto_opt(&fl, msg);