diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-09-06 10:51:57 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-09-06 10:51:57 -0400 |
commit | 7f79d852ed30a06eebf7497afe9334a726db3d40 (patch) | |
tree | 0057281f17501b635d3d88cda9a14203706f5dcc /net/sctp/socket.c | |
parent | aef745fca016aea45adae5c98e8698904dd8ad51 (diff) | |
parent | 70bb08962ea9bd50797ae9f16b2493f5f7c65053 (diff) |
Merge branch 'linus' into sched/devel
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r-- | net/sctp/socket.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index bb5c9ef13046..5ffb9dec1c3f 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -3086,6 +3086,7 @@ static int sctp_setsockopt_hmac_ident(struct sock *sk, | |||
3086 | int optlen) | 3086 | int optlen) |
3087 | { | 3087 | { |
3088 | struct sctp_hmacalgo *hmacs; | 3088 | struct sctp_hmacalgo *hmacs; |
3089 | u32 idents; | ||
3089 | int err; | 3090 | int err; |
3090 | 3091 | ||
3091 | if (!sctp_auth_enable) | 3092 | if (!sctp_auth_enable) |
@@ -3103,8 +3104,9 @@ static int sctp_setsockopt_hmac_ident(struct sock *sk, | |||
3103 | goto out; | 3104 | goto out; |
3104 | } | 3105 | } |
3105 | 3106 | ||
3106 | if (hmacs->shmac_num_idents == 0 || | 3107 | idents = hmacs->shmac_num_idents; |
3107 | hmacs->shmac_num_idents > SCTP_AUTH_NUM_HMACS) { | 3108 | if (idents == 0 || idents > SCTP_AUTH_NUM_HMACS || |
3109 | (idents * sizeof(u16)) > (optlen - sizeof(struct sctp_hmacalgo))) { | ||
3108 | err = -EINVAL; | 3110 | err = -EINVAL; |
3109 | goto out; | 3111 | goto out; |
3110 | } | 3112 | } |
@@ -3144,6 +3146,11 @@ static int sctp_setsockopt_auth_key(struct sock *sk, | |||
3144 | goto out; | 3146 | goto out; |
3145 | } | 3147 | } |
3146 | 3148 | ||
3149 | if (authkey->sca_keylength > optlen - sizeof(struct sctp_authkey)) { | ||
3150 | ret = -EINVAL; | ||
3151 | goto out; | ||
3152 | } | ||
3153 | |||
3147 | asoc = sctp_id2assoc(sk, authkey->sca_assoc_id); | 3154 | asoc = sctp_id2assoc(sk, authkey->sca_assoc_id); |
3148 | if (!asoc && authkey->sca_assoc_id && sctp_style(sk, UDP)) { | 3155 | if (!asoc && authkey->sca_assoc_id && sctp_style(sk, UDP)) { |
3149 | ret = -EINVAL; | 3156 | ret = -EINVAL; |