Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
1ef43204
Commit
1ef43204
authored
Nov 20, 2005
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge
git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+advapi-fix/
parents
5d5780df
df9890c3
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
36 additions
and
14 deletions
+36
-14
include/net/ipv6.h
include/net/ipv6.h
+2
-0
net/ipv6/datagram.c
net/ipv6/datagram.c
+1
-1
net/ipv6/exthdrs.c
net/ipv6/exthdrs.c
+21
-1
net/ipv6/ip6_flowlabel.c
net/ipv6/ip6_flowlabel.c
+6
-10
net/ipv6/raw.c
net/ipv6/raw.c
+3
-1
net/ipv6/udp.c
net/ipv6/udp.c
+3
-1
No files found.
include/net/ipv6.h
View file @
1ef43204
...
...
@@ -237,6 +237,8 @@ extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_t
int
newtype
,
struct
ipv6_opt_hdr
__user
*
newopt
,
int
newoptlen
);
struct
ipv6_txoptions
*
ipv6_fixup_options
(
struct
ipv6_txoptions
*
opt_space
,
struct
ipv6_txoptions
*
opt
);
extern
int
ip6_frag_nqueues
;
extern
atomic_t
ip6_frag_mem
;
...
...
net/ipv6/datagram.c
View file @
1ef43204
...
...
@@ -437,7 +437,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)
break
;
case
IPPROTO_AH
:
nexthdr
=
ptr
[
0
];
len
=
(
ptr
[
1
]
+
1
)
<<
2
;
len
=
(
ptr
[
1
]
+
2
)
<<
2
;
break
;
default:
nexthdr
=
ptr
[
0
];
...
...
net/ipv6/exthdrs.c
View file @
1ef43204
...
...
@@ -628,6 +628,7 @@ ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
if
(
!
tot_len
)
return
NULL
;
tot_len
+=
sizeof
(
*
opt2
);
opt2
=
sock_kmalloc
(
sk
,
tot_len
,
GFP_ATOMIC
);
if
(
!
opt2
)
return
ERR_PTR
(
-
ENOBUFS
);
...
...
@@ -668,7 +669,26 @@ ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
return
opt2
;
out:
sock_kfree_s
(
sk
,
p
,
tot_len
);
sock_kfree_s
(
sk
,
opt2
,
opt2
->
tot_len
);
return
ERR_PTR
(
err
);
}
struct
ipv6_txoptions
*
ipv6_fixup_options
(
struct
ipv6_txoptions
*
opt_space
,
struct
ipv6_txoptions
*
opt
)
{
/*
* ignore the dest before srcrt unless srcrt is being included.
* --yoshfuji
*/
if
(
opt
&&
opt
->
dst0opt
&&
!
opt
->
srcrt
)
{
if
(
opt_space
!=
opt
)
{
memcpy
(
opt_space
,
opt
,
sizeof
(
*
opt_space
));
opt
=
opt_space
;
}
opt
->
opt_nflen
-=
ipv6_optlen
(
opt
->
dst0opt
);
opt
->
dst0opt
=
NULL
;
}
return
opt
;
}
net/ipv6/ip6_flowlabel.c
View file @
1ef43204
...
...
@@ -225,20 +225,16 @@ struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions * opt_space,
struct
ip6_flowlabel
*
fl
,
struct
ipv6_txoptions
*
fopt
)
{
struct
ipv6_txoptions
*
fl_opt
=
fl
?
fl
->
opt
:
NULL
;
if
(
fopt
==
NULL
||
fopt
->
opt_flen
==
0
)
{
if
(
!
fl_opt
||
!
fl_opt
->
dst0opt
||
fl_opt
->
srcrt
)
return
fl_opt
;
}
struct
ipv6_txoptions
*
fl_opt
=
fl
->
opt
;
if
(
fopt
==
NULL
||
fopt
->
opt_flen
==
0
)
return
fl_opt
;
if
(
fl_opt
!=
NULL
)
{
opt_space
->
hopopt
=
fl_opt
->
hopopt
;
opt_space
->
dst0opt
=
fl_opt
->
srcrt
?
fl_opt
->
dst0opt
:
NULL
;
opt_space
->
dst0opt
=
fl_opt
->
dst0opt
;
opt_space
->
srcrt
=
fl_opt
->
srcrt
;
opt_space
->
opt_nflen
=
fl_opt
->
opt_nflen
;
if
(
fl_opt
->
dst0opt
&&
!
fl_opt
->
srcrt
)
opt_space
->
opt_nflen
-=
ipv6_optlen
(
fl_opt
->
dst0opt
);
}
else
{
if
(
fopt
->
opt_nflen
==
0
)
return
fopt
;
...
...
net/ipv6/raw.c
View file @
1ef43204
...
...
@@ -748,7 +748,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
);
...
...
net/ipv6/udp.c
View file @
1ef43204
...
...
@@ -771,7 +771,9 @@ do_udp_sendmsg:
}
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
=
IPPROTO_UDP
;
ipv6_addr_copy
(
&
fl
->
fl6_dst
,
daddr
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment