summaryrefslogtreecommitdiffstats
path: root/net/sctp/socket.c
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2008-08-28 01:08:54 +0200
committerDavid S. Miller <davem@davemloft.net>2008-08-28 01:08:54 +0200
commit328fc47ea0bcc27d9afa69c3ad6e52431cadd76c (patch)
tree5969688468a63ee01db68be4adff671bd9aa85c8 /net/sctp/socket.c
parentwan: Missing capability checks in sbni_ioctl() (diff)
downloadlinux-328fc47ea0bcc27d9afa69c3ad6e52431cadd76c.tar.xz
linux-328fc47ea0bcc27d9afa69c3ad6e52431cadd76c.zip
sctp: correct bounds check in sctp_setsockopt_auth_key
The bonds check to prevent buffer overlflow was not exactly right. It still allowed overflow of up to 8 bytes which is sizeof(struct sctp_authkey). Since optlen is already checked against the size of that struct, we are guaranteed not to cause interger overflow either. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r--net/sctp/socket.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index afa952e726d7..9b9b2c31dd15 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3144,7 +3144,7 @@ static int sctp_setsockopt_auth_key(struct sock *sk,
goto out;
}
- if (authkey->sca_keylength > optlen) {
+ if (authkey->sca_keylength > optlen - sizeof(struct sctp_authkey)) {
ret = -EINVAL;
goto out;
}