diff options
author | Andrei Pelinescu-Onciul <andrei@iptel.org> | 2009-11-23 15:54:01 -0500 |
---|---|---|
committer | Vlad Yasevich <vladislav.yasevich@hp.com> | 2009-11-23 15:54:01 -0500 |
commit | f6778aab6ccc4b510b4dcfa770d9949b696b4545 (patch) | |
tree | d3aca83fb8994d2efbc5420d68e1d27f1c8c08a7 /net/sctp/socket.c | |
parent | d8dd15781dd621c5ceab79083f4c5112787863f5 (diff) | |
download | lwn-f6778aab6ccc4b510b4dcfa770d9949b696b4545.tar.gz lwn-f6778aab6ccc4b510b4dcfa770d9949b696b4545.zip |
sctp: limit maximum autoclose setsockopt value
To avoid overflowing the maximum timer interval when transforming
the autoclose interval from seconds to jiffies, limit the maximum
autoclose value to MAX_SCHEDULE_TIMEOUT/HZ.
Signed-off-by: Andrei Pelinescu-Onciul <andrei@iptel.org>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r-- | net/sctp/socket.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index d2681a6bc6fa..71513b3926a5 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -2086,6 +2086,9 @@ static int sctp_setsockopt_autoclose(struct sock *sk, char __user *optval, return -EINVAL; if (copy_from_user(&sp->autoclose, optval, optlen)) return -EFAULT; + /* make sure it won't exceed MAX_SCHEDULE_TIMEOUT */ + if (sp->autoclose > (MAX_SCHEDULE_TIMEOUT / HZ) ) + sp->autoclose = MAX_SCHEDULE_TIMEOUT / HZ ; return 0; } |