|
@@ -1213,10 +1213,10 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
|
|
|
if (dst_allfrag(rt->dst.path))
|
|
|
cork->flags |= IPCORK_ALLFRAG;
|
|
|
cork->length = 0;
|
|
|
- exthdrlen = (opt ? opt->opt_flen : 0) - rt->rt6i_nfheader_len;
|
|
|
+ exthdrlen = (opt ? opt->opt_flen : 0);
|
|
|
length += exthdrlen;
|
|
|
transhdrlen += exthdrlen;
|
|
|
- dst_exthdrlen = rt->dst.header_len;
|
|
|
+ dst_exthdrlen = rt->dst.header_len - rt->rt6i_nfheader_len;
|
|
|
} else {
|
|
|
rt = (struct rt6_info *)cork->dst;
|
|
|
fl6 = &inet->cork.fl.u.ip6;
|