diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-24 18:41:28 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-24 18:41:28 -0700 |
commit | 1c1ee4c3e7e16d23166a624a132889df3c540a18 (patch) | |
tree | c6f20db95c421f7171f85bbe022f58a678b93ba5 /net/core/sock.c | |
parent | 91396c1e2d73a041d86935fb8371e8d48b48b663 (diff) | |
parent | 14e50e57aedb2a89cf79b77782879769794cab7b (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (25 commits)
[XFRM]: Allow packet drops during larval state resolution.
[CASSINI]: Check pci_set_mwi() return value.
[NET]: "wrong timeout value" in sk_wait_data() v2
[NETFILTER]: nf_nat_h323: call set_h225_addr instead of set_h225_addr_hook
[NETFILTER]: nf_conntrack_h323: add missing T.120 address in OLCA
[NETFILTER]: nf_conntrack_h323: remove unnecessary process of Information signal
[NETFILTER]: nf_conntrack_h323: fix get_h225_addr() for IPv6 address access
[NETFILTER]: nf_conntrack_h323: fix ASN.1 types
[NETFILTER]: nf_conntrack_ftp: fix newline sequence number calculation
[NETFILTER]: nf_conntrack_ftp: fix newline sequence number update
[NET_SCHED]: sch_htb: fix event cache time calculation
[DCCP]: Fix build warning when debugging is disabled.
[TIPC]: Fixed erroneous introduction of for_each_netdev
[RTNETLINK]: Fix sending netlink message when replace route.
[TR]: Use menuconfig objects.
[ARCNET]: Use menuconfig objects.
[TIPC]: Use menuconfig objects.
[SCTP]: Use menuconfig objects.
[IPVS]: Use menuconfig objects.
[DCCP]: Use menuconfig objects.
...
Diffstat (limited to 'net/core/sock.c')
-rw-r--r-- | net/core/sock.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 22183c2ef28..7e51d3a5e4f 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -206,7 +206,19 @@ static int sock_set_timeout(long *timeo_p, char __user *optval, int optlen) return -EINVAL; if (copy_from_user(&tv, optval, sizeof(tv))) return -EFAULT; - + if (tv.tv_usec < 0 || tv.tv_usec >= USEC_PER_SEC) + return -EDOM; + + if (tv.tv_sec < 0) { + static int warned = 0; + *timeo_p = 0; + if (warned < 10 && net_ratelimit()) + warned++; + printk(KERN_INFO "sock_set_timeout: `%s' (pid %d) " + "tries to set negative timeout\n", + current->comm, current->pid); + return 0; + } *timeo_p = MAX_SCHEDULE_TIMEOUT; if (tv.tv_sec == 0 && tv.tv_usec == 0) return 0; |