linux/net
Eric Dumazet 9261c9b042 [NET]: Make sure l_linger is unsigned to avoid negative timeouts
One of my x86_64 (linux 2.6.13) server log is filled with :

schedule_timeout: wrong timeout value ffffffffffffff06 from ffffffff802e63ca
schedule_timeout: wrong timeout value ffffffffffffff06 from ffffffff802e63ca
schedule_timeout: wrong timeout value ffffffffffffff06 from ffffffff802e63ca
schedule_timeout: wrong timeout value ffffffffffffff06 from ffffffff802e63ca
schedule_timeout: wrong timeout value ffffffffffffff06 from ffffffff802e63ca

This is because some application does a

struct linger li;
li.l_onoff = 1;
li.l_linger = -1;
setsockopt(sock, SOL_SOCKET, SO_LINGER, &li, sizeof(li));

And unfortunatly l_linger is defined as a 'signed int' in
include/linux/socket.h:

struct linger {
         int             l_onoff;        /* Linger active                */
         int             l_linger;       /* How long to linger for       */
};

I dont know if it's safe to change l_linger to 'unsigned int' in the
include file (It might be defined as int in ABI specs)

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-09-06 14:51:39 -07:00
..
802 [NET]: net/802: more endian annotations 2005-08-29 16:10:54 -07:00
8021q [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
appletalk [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
atm [ATM]: net/atm/ioctl.c should #include "common.h" 2005-09-05 18:04:28 -07:00
ax25 [AX25/NETROM/ROSE]: Kill net/ip.h inclusion 2005-08-29 16:08:15 -07:00
bluetooth [NET]: Store skb->timestamp as offset to a base timestamp 2005-08-29 15:58:24 -07:00
bridge [NET]: use __read_mostly on kmem_cache_t , DEFINE_SNMP_STAT pointers 2005-08-29 16:11:18 -07:00
core [NET]: Make sure l_linger is unsigned to avoid negative timeouts 2005-09-06 14:51:39 -07:00
dccp [CCID3]: Call sk->sk_write_space(sk) when receiving a feedback packet 2005-08-29 16:13:46 -07:00
decnet [DECNET]: Tidy send side socket SKB allocation. 2005-09-01 17:43:45 -07:00
econet [NET]: Store skb->timestamp as offset to a base timestamp 2005-08-29 15:58:24 -07:00
ethernet [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
ieee80211 [IEEE80211]: Use correct size_t printf format string in ieee80211_rx.c 2005-09-05 23:19:49 -07:00
ipv4 [TCP]: Fix TCP_OFF() bug check introduced by previous change. 2005-09-05 18:55:48 -07:00
ipv6 [IPV6]: Repair Incoming Interface Handling for Raw Socket. 2005-09-01 17:44:49 -07:00
ipx [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
irda [IRDA]: IrDA prototype fixes 2005-09-05 18:08:11 -07:00
key [IPSEC]: Add XFRM_STATE_NOPMTUDISC flag 2005-06-20 13:21:43 -07:00
lapb [NET]: Kill skb->list 2005-08-29 15:31:14 -07:00
llc [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
netfilter [NETFILTER] remove bogus hand-coded htonll() from nenetlink_queue 2005-09-05 18:09:08 -07:00
netlink [NETLINK]: Fix sparse warnings 2005-08-29 16:01:35 -07:00
netrom [AX25/NETROM/ROSE]: Kill net/ip.h inclusion 2005-08-29 16:08:15 -07:00
packet [NET]: Use file->private_data to get socket pointer. 2005-09-06 14:42:45 -07:00
rose [AX25/NETROM/ROSE]: Kill net/ip.h inclusion 2005-08-29 16:08:15 -07:00
rxrpc [RXRPC]: Fix build failure introduced by skb->stamp changes. 2005-08-29 16:01:24 -07:00
sched [LIB]: Make TEXTSEARCH_BM plain tristate like the others 2005-08-29 16:11:11 -07:00
sctp [SCTP]: net/sctp/sysctl.c should #include <net/sctp/sctp.h> 2005-09-05 18:07:42 -07:00
sunrpc Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2005-09-05 00:11:50 -07:00
unix [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
wanrouter [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
x25 [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
xfrm [NET]: use __read_mostly on kmem_cache_t , DEFINE_SNMP_STAT pointers 2005-08-29 16:11:18 -07:00
compat.c [NET]: Fix memory leak in sys_{send,recv}msg() w/compat 2005-08-09 15:29:19 -07:00
Kconfig /spare/repo/netdev-2.6 branch 'master' 2005-09-01 18:02:01 -04:00
Makefile /spare/repo/netdev-2.6 branch 'master' 2005-09-01 18:02:01 -04:00
nonet.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
socket.c [NET]: Use file->private_data to get socket pointer. 2005-09-06 14:42:45 -07:00
sysctl_net.c [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
TUNABLE Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00