Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 90639
b: refs/heads/master
c: a28398b
h: refs/heads/master
i:
  90637: c557724
  90635: b92bd93
  90631: 815f769
  90623: f004633
v: v3
  • Loading branch information
Wang Chen authored and YOSHIFUJI Hideaki committed Apr 12, 2008
1 parent 4393766 commit 29db591
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7f1eced8b0a001c4d5a8cfa5ac7b5cbc89fedab8
refs/heads/master: a28398ba6112be28c6a92aacf06aca1979b454b7
10 changes: 8 additions & 2 deletions trunk/net/ipv6/ipv6_sockglue.c
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,9 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
{
struct ipv6_mreq mreq;

if (optlen < sizeof(struct ipv6_mreq))
goto e_inval;

retv = -EPROTO;
if (inet_sk(sk)->is_icsk)
break;
Expand All @@ -468,7 +471,7 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
{
struct ipv6_mreq mreq;

if (optlen != sizeof(struct ipv6_mreq))
if (optlen < sizeof(struct ipv6_mreq))
goto e_inval;

retv = -EFAULT;
Expand All @@ -487,6 +490,9 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
struct group_req greq;
struct sockaddr_in6 *psin6;

if (optlen < sizeof(struct group_req))
goto e_inval;

retv = -EFAULT;
if (copy_from_user(&greq, optval, sizeof(struct group_req)))
break;
Expand All @@ -511,7 +517,7 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
struct group_source_req greqs;
int omode, add;

if (optlen != sizeof(struct group_source_req))
if (optlen < sizeof(struct group_source_req))
goto e_inval;
if (copy_from_user(&greqs, optval, sizeof(greqs))) {
retv = -EFAULT;
Expand Down

0 comments on commit 29db591

Please sign in to comment.