[kernel] r14354 - in dists/lenny/linux-2.6-abi/debian: . patches/bugfix/all patches/series
Dann Frazier
dannf at alioth.debian.org
Thu Oct 8 15:30:08 UTC 2009
Author: dannf
Date: Thu Oct 8 15:30:02 2009
New Revision: 14354
Log:
net: Make setsockopt() optlen be unsigned (CVE-2009-2909)
Added:
dists/lenny/linux-2.6-abi/debian/patches/bugfix/all/net-make-setsockopt-optlen-be-unsigned.patch
Modified:
dists/lenny/linux-2.6-abi/debian/changelog
dists/lenny/linux-2.6-abi/debian/patches/series/18abi
Modified: dists/lenny/linux-2.6-abi/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6-abi/debian/changelog Thu Oct 8 06:30:33 2009 (r14353)
+++ dists/lenny/linux-2.6-abi/debian/changelog Thu Oct 8 15:30:02 2009 (r14354)
@@ -7,6 +7,9 @@
* [openvz] [UBC]: Endless loop in __sk_stream_wait_memory.
(closes: #542633)
+ [ dann frazier ]
+ * net: Make setsockopt() optlen be unsigned (CVE-2009-2909)
+
-- dann frazier <dannf at debian.org> Mon, 20 Jul 2009 21:08:49 -0600
linux-2.6 (2.6.26-18) UNRELEASED; urgency=high
Added: dists/lenny/linux-2.6-abi/debian/patches/bugfix/all/net-make-setsockopt-optlen-be-unsigned.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/lenny/linux-2.6-abi/debian/patches/bugfix/all/net-make-setsockopt-optlen-be-unsigned.patch Thu Oct 8 15:30:02 2009 (r14354)
@@ -0,0 +1,1352 @@
+commit b7058842c940ad2c08dd829b21e5c92ebe3b8758
+Author: David S. Miller <davem at davemloft.net>
+Date: Wed Sep 30 16:12:20 2009 -0700
+
+ net: Make setsockopt() optlen be unsigned.
+
+ This provides safety against negative optlen at the type
+ level instead of depending upon (sometimes non-trivial)
+ checks against this sprinkled all over the the place, in
+ each and every implementation.
+
+ Based upon work done by Arjan van de Ven and feedback
+ from Linus Torvalds.
+
+ Signed-off-by: David S. Miller <davem at davemloft.net>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at hp.com>
+
+diff -urpN linux-source-2.6.26.orig/drivers/atm/ambassador.c linux-source-2.6.26/drivers/atm/ambassador.c
+--- linux-source-2.6.26.orig/drivers/atm/ambassador.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/atm/ambassador.c 2009-10-08 00:32:11.000000000 -0600
+@@ -1327,14 +1327,6 @@ static void amb_close (struct atm_vcc *
+ return;
+ }
+
+-/********** Set socket options for a VC **********/
+-
+-// int amb_getsockopt (struct atm_vcc * atm_vcc, int level, int optname, void * optval, int optlen);
+-
+-/********** Set socket options for a VC **********/
+-
+-// int amb_setsockopt (struct atm_vcc * atm_vcc, int level, int optname, void * optval, int optlen);
+-
+ /********** Send **********/
+
+ static int amb_send (struct atm_vcc * atm_vcc, struct sk_buff * skb) {
+diff -urpN linux-source-2.6.26.orig/drivers/atm/eni.c linux-source-2.6.26/drivers/atm/eni.c
+--- linux-source-2.6.26.orig/drivers/atm/eni.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/atm/eni.c 2009-10-08 00:32:11.000000000 -0600
+@@ -2031,7 +2031,7 @@ static int eni_getsockopt(struct atm_vcc
+
+
+ static int eni_setsockopt(struct atm_vcc *vcc,int level,int optname,
+- void __user *optval,int optlen)
++ void __user *optval,unsigned int optlen)
+ {
+ return -EINVAL;
+ }
+diff -urpN linux-source-2.6.26.orig/drivers/atm/firestream.c linux-source-2.6.26/drivers/atm/firestream.c
+--- linux-source-2.6.26.orig/drivers/atm/firestream.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/atm/firestream.c 2009-10-08 00:32:11.000000000 -0600
+@@ -1244,7 +1244,7 @@ static int fs_getsockopt(struct atm_vcc
+
+
+ static int fs_setsockopt(struct atm_vcc *vcc,int level,int optname,
+- void __user *optval,int optlen)
++ void __user *optval,unsigned int optlen)
+ {
+ func_enter ();
+ func_exit ();
+diff -urpN linux-source-2.6.26.orig/drivers/atm/fore200e.c linux-source-2.6.26/drivers/atm/fore200e.c
+--- linux-source-2.6.26.orig/drivers/atm/fore200e.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/atm/fore200e.c 2009-10-08 00:32:11.000000000 -0600
+@@ -1856,7 +1856,7 @@ fore200e_getsockopt(struct atm_vcc* vcc,
+
+
+ static int
+-fore200e_setsockopt(struct atm_vcc* vcc, int level, int optname, void __user *optval, int optlen)
++fore200e_setsockopt(struct atm_vcc* vcc, int level, int optname, void __user *optval, unsigned int optlen)
+ {
+ /* struct fore200e* fore200e = FORE200E_DEV(vcc->dev); */
+
+diff -urpN linux-source-2.6.26.orig/drivers/atm/horizon.c linux-source-2.6.26/drivers/atm/horizon.c
+--- linux-source-2.6.26.orig/drivers/atm/horizon.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/atm/horizon.c 2009-10-08 00:32:11.000000000 -0600
+@@ -2590,7 +2590,7 @@ static int hrz_getsockopt (struct atm_vc
+ }
+
+ static int hrz_setsockopt (struct atm_vcc * atm_vcc, int level, int optname,
+- void *optval, int optlen) {
++ void *optval, unsigned int optlen) {
+ hrz_dev * dev = HRZ_DEV(atm_vcc->dev);
+ PRINTD (DBG_FLOW|DBG_VCC, "hrz_setsockopt");
+ switch (level) {
+diff -urpN linux-source-2.6.26.orig/drivers/atm/iphase.c linux-source-2.6.26/drivers/atm/iphase.c
+--- linux-source-2.6.26.orig/drivers/atm/iphase.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/atm/iphase.c 2009-10-08 00:32:11.000000000 -0600
+@@ -2872,7 +2872,7 @@ static int ia_getsockopt(struct atm_vcc
+ }
+
+ static int ia_setsockopt(struct atm_vcc *vcc, int level, int optname,
+- void __user *optval, int optlen)
++ void __user *optval, unsigned int optlen)
+ {
+ IF_EVENT(printk(">ia_setsockopt\n");)
+ return -EINVAL;
+diff -urpN linux-source-2.6.26.orig/drivers/atm/zatm.c linux-source-2.6.26/drivers/atm/zatm.c
+--- linux-source-2.6.26.orig/drivers/atm/zatm.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/atm/zatm.c 2009-10-08 00:32:11.000000000 -0600
+@@ -1517,7 +1517,7 @@ static int zatm_getsockopt(struct atm_vc
+
+
+ static int zatm_setsockopt(struct atm_vcc *vcc,int level,int optname,
+- void __user *optval,int optlen)
++ void __user *optval,unsigned int optlen)
+ {
+ return -EINVAL;
+ }
+diff -urpN linux-source-2.6.26.orig/drivers/net/pppol2tp.c linux-source-2.6.26/drivers/net/pppol2tp.c
+--- linux-source-2.6.26.orig/drivers/net/pppol2tp.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/net/pppol2tp.c 2009-10-08 00:33:19.000000000 -0600
+@@ -2087,7 +2087,7 @@ static int pppol2tp_session_setsockopt(s
+ * session or the special tunnel type.
+ */
+ static int pppol2tp_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct pppol2tp_session *session = sk->sk_user_data;
+diff -urpN linux-source-2.6.26.orig/include/linux/atmdev.h linux-source-2.6.26/include/linux/atmdev.h
+--- linux-source-2.6.26.orig/include/linux/atmdev.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/linux/atmdev.h 2009-10-08 00:33:19.000000000 -0600
+@@ -382,7 +382,7 @@ struct atmdev_ops { /* only send is requ
+ int (*getsockopt)(struct atm_vcc *vcc,int level,int optname,
+ void __user *optval,int optlen);
+ int (*setsockopt)(struct atm_vcc *vcc,int level,int optname,
+- void __user *optval,int optlen);
++ void __user *optval,unsigned int optlen);
+ int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
+ int (*send_oam)(struct atm_vcc *vcc,void *cell,int flags);
+ void (*phy_put)(struct atm_dev *dev,unsigned char value,
+diff -urpN linux-source-2.6.26.orig/include/linux/mroute6.h linux-source-2.6.26/include/linux/mroute6.h
+--- linux-source-2.6.26.orig/include/linux/mroute6.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/linux/mroute6.h 2009-10-08 00:39:36.000000000 -0600
+@@ -131,7 +131,7 @@ static inline int ip6_mroute_opt(int opt
+
+ struct sock;
+
+-extern int ip6_mroute_setsockopt(struct sock *, int, char __user *, int);
++extern int ip6_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
+ extern int ip6_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
+ extern int ip6_mr_input(struct sk_buff *skb);
+ extern int ip6mr_ioctl(struct sock *sk, int cmd, void __user *arg);
+diff -urpN linux-source-2.6.26.orig/include/linux/mroute.h linux-source-2.6.26/include/linux/mroute.h
+--- linux-source-2.6.26.orig/include/linux/mroute.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/linux/mroute.h 2009-10-08 00:36:01.000000000 -0600
+@@ -144,7 +144,7 @@ static inline int ip_mroute_opt(int opt)
+ }
+ #endif
+
+-extern int ip_mroute_setsockopt(struct sock *, int, char __user *, int);
++extern int ip_mroute_setsockopt(struct sock *, int, char __user *, unsigned int);
+ extern int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *);
+ extern int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg);
+ extern void ip_mr_init(void);
+diff -urpN linux-source-2.6.26.orig/include/linux/netfilter.h linux-source-2.6.26/include/linux/netfilter.h
+--- linux-source-2.6.26.orig/include/linux/netfilter.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/linux/netfilter.h 2009-10-08 00:37:04.000000000 -0600
+@@ -213,12 +213,12 @@ __ret;})
+
+ /* Call setsockopt() */
+ int nf_setsockopt(struct sock *sk, int pf, int optval, char __user *opt,
+- int len);
++ unsigned int len);
+ int nf_getsockopt(struct sock *sk, int pf, int optval, char __user *opt,
+ int *len);
+
+ int compat_nf_setsockopt(struct sock *sk, int pf, int optval,
+- char __user *opt, int len);
++ char __user *opt, unsigned int len);
+ int compat_nf_getsockopt(struct sock *sk, int pf, int optval,
+ char __user *opt, int *len);
+
+diff -urpN linux-source-2.6.26.orig/include/linux/net.h linux-source-2.6.26/include/linux/net.h
+--- linux-source-2.6.26.orig/include/linux/net.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/linux/net.h 2009-10-08 00:33:19.000000000 -0600
+@@ -158,11 +158,11 @@ struct proto_ops {
+ int (*listen) (struct socket *sock, int len);
+ int (*shutdown) (struct socket *sock, int flags);
+ int (*setsockopt)(struct socket *sock, int level,
+- int optname, char __user *optval, int optlen);
++ int optname, char __user *optval, unsigned int optlen);
+ int (*getsockopt)(struct socket *sock, int level,
+ int optname, char __user *optval, int __user *optlen);
+ int (*compat_setsockopt)(struct socket *sock, int level,
+- int optname, char __user *optval, int optlen);
++ int optname, char __user *optval, unsigned int optlen);
+ int (*compat_getsockopt)(struct socket *sock, int level,
+ int optname, char __user *optval, int __user *optlen);
+ int (*sendmsg) (struct kiocb *iocb, struct socket *sock,
+@@ -236,7 +236,7 @@ extern int kernel_getpeername(struct soc
+ extern int kernel_getsockopt(struct socket *sock, int level, int optname,
+ char *optval, int *optlen);
+ extern int kernel_setsockopt(struct socket *sock, int level, int optname,
+- char *optval, int optlen);
++ char *optval, unsigned int optlen);
+ extern int kernel_sendpage(struct socket *sock, struct page *page, int offset,
+ size_t size, int flags);
+ extern int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg);
+@@ -293,7 +293,7 @@ SOCKCALL_WRAP(name, compat_ioctl, (struc
+ SOCKCALL_WRAP(name, listen, (struct socket *sock, int len), (sock, len)) \
+ SOCKCALL_WRAP(name, shutdown, (struct socket *sock, int flags), (sock, flags)) \
+ SOCKCALL_WRAP(name, setsockopt, (struct socket *sock, int level, int optname, \
+- char __user *optval, int optlen), (sock, level, optname, optval, optlen)) \
++ char __user *optval, unsigned int optlen), (sock, level, optname, optval, optlen)) \
+ SOCKCALL_WRAP(name, getsockopt, (struct socket *sock, int level, int optname, \
+ char __user *optval, int __user *optlen), (sock, level, optname, optval, optlen)) \
+ SOCKCALL_WRAP(name, sendmsg, (struct kiocb *iocb, struct socket *sock, struct msghdr *m, size_t len), \
+diff -urpN linux-source-2.6.26.orig/include/net/compat.h linux-source-2.6.26/include/net/compat.h
+--- linux-source-2.6.26.orig/include/net/compat.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/net/compat.h 2009-10-08 00:33:19.000000000 -0600
+@@ -40,8 +40,8 @@ extern int put_cmsg_compat(struct msghdr
+
+ extern int cmsghdr_from_user_compat_to_kern(struct msghdr *, struct sock *, unsigned char *, int);
+
+-extern int compat_mc_setsockopt(struct sock *, int, int, char __user *, int,
+- int (*)(struct sock *, int, int, char __user *, int));
++extern int compat_mc_setsockopt(struct sock *, int, int, char __user *, unsigned int,
++ int (*)(struct sock *, int, int, char __user *, unsigned int));
+ extern int compat_mc_getsockopt(struct sock *, int, int, char __user *,
+ int __user *, int (*)(struct sock *, int, int, char __user *,
+ int __user *));
+diff -urpN linux-source-2.6.26.orig/include/net/inet_connection_sock.h linux-source-2.6.26/include/net/inet_connection_sock.h
+--- linux-source-2.6.26.orig/include/net/inet_connection_sock.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/net/inet_connection_sock.h 2009-10-08 00:37:54.000000000 -0600
+@@ -48,12 +48,12 @@ struct inet_connection_sock_af_ops {
+ u16 net_header_len;
+ u16 sockaddr_len;
+ int (*setsockopt)(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ int (*getsockopt)(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen);
+ int (*compat_setsockopt)(struct sock *sk,
+ int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ int (*compat_getsockopt)(struct sock *sk,
+ int level, int optname,
+ char __user *optval, int __user *optlen);
+@@ -330,5 +330,5 @@ extern void inet_csk_addr2sockaddr(struc
+ extern int inet_csk_compat_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen);
+ extern int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ #endif /* _INET_CONNECTION_SOCK_H */
+diff -urpN linux-source-2.6.26.orig/include/net/ip.h linux-source-2.6.26/include/net/ip.h
+--- linux-source-2.6.26.orig/include/net/ip.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/net/ip.h 2009-10-08 00:33:19.000000000 -0600
+@@ -364,10 +364,10 @@ extern int ip_options_rcv_srr(struct sk_
+ extern void ip_cmsg_recv(struct msghdr *msg, struct sk_buff *skb);
+ extern int ip_cmsg_send(struct net *net,
+ struct msghdr *msg, struct ipcm_cookie *ipc);
+-extern int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, int optlen);
++extern int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, unsigned int optlen);
+ extern int ip_getsockopt(struct sock *sk, int level, int optname, char __user *optval, int __user *optlen);
+ extern int compat_ip_setsockopt(struct sock *sk, int level,
+- int optname, char __user *optval, int optlen);
++ int optname, char __user *optval, unsigned int optlen);
+ extern int compat_ip_getsockopt(struct sock *sk, int level,
+ int optname, char __user *optval, int __user *optlen);
+ extern int ip_ra_control(struct sock *sk, unsigned char on, void (*destructor)(struct sock *));
+diff -urpN linux-source-2.6.26.orig/include/net/ipv6.h linux-source-2.6.26/include/net/ipv6.h
+--- linux-source-2.6.26.orig/include/net/ipv6.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/net/ipv6.h 2009-10-08 00:33:19.000000000 -0600
+@@ -536,7 +536,7 @@ extern int ipv6_find_tlv(struct sk_buff
+ extern int ipv6_setsockopt(struct sock *sk, int level,
+ int optname,
+ char __user *optval,
+- int optlen);
++ unsigned int optlen);
+ extern int ipv6_getsockopt(struct sock *sk, int level,
+ int optname,
+ char __user *optval,
+@@ -545,7 +545,7 @@ extern int compat_ipv6_setsockopt(stru
+ int level,
+ int optname,
+ char __user *optval,
+- int optlen);
++ unsigned int optlen);
+ extern int compat_ipv6_getsockopt(struct sock *sk,
+ int level,
+ int optname,
+diff -urpN linux-source-2.6.26.orig/include/net/sctp/structs.h linux-source-2.6.26/include/net/sctp/structs.h
+--- linux-source-2.6.26.orig/include/net/sctp/structs.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/net/sctp/structs.h 2009-10-08 00:33:19.000000000 -0600
+@@ -529,7 +529,7 @@ struct sctp_af {
+ int level,
+ int optname,
+ char __user *optval,
+- int optlen);
++ unsigned int optlen);
+ int (*getsockopt) (struct sock *sk,
+ int level,
+ int optname,
+@@ -539,7 +539,7 @@ struct sctp_af {
+ int level,
+ int optname,
+ char __user *optval,
+- int optlen);
++ unsigned int optlen);
+ int (*compat_getsockopt) (struct sock *sk,
+ int level,
+ int optname,
+diff -urpN linux-source-2.6.26.orig/include/net/sock.h linux-source-2.6.26/include/net/sock.h
+--- linux-source-2.6.26.orig/include/net/sock.h 2009-08-18 23:15:13.000000000 -0600
++++ linux-source-2.6.26/include/net/sock.h 2009-10-08 00:33:19.000000000 -0600
+@@ -528,14 +528,14 @@ struct proto {
+ void (*shutdown)(struct sock *sk, int how);
+ int (*setsockopt)(struct sock *sk, int level,
+ int optname, char __user *optval,
+- int optlen);
++ unsigned int optlen);
+ int (*getsockopt)(struct sock *sk, int level,
+ int optname, char __user *optval,
+ int __user *option);
+ int (*compat_setsockopt)(struct sock *sk,
+ int level,
+ int optname, char __user *optval,
+- int optlen);
++ unsigned int optlen);
+ int (*compat_getsockopt)(struct sock *sk,
+ int level,
+ int optname, char __user *optval,
+@@ -852,7 +852,7 @@ extern void sock_rfree(struct sk_buff
+
+ extern int sock_setsockopt(struct socket *sock, int level,
+ int op, char __user *optval,
+- int optlen);
++ unsigned int optlen);
+
+ extern int sock_getsockopt(struct socket *sock, int level,
+ int op, char __user *optval,
+@@ -889,7 +889,7 @@ extern int sock_no_
+ extern int sock_no_getsockopt(struct socket *, int , int,
+ char __user *, int __user *);
+ extern int sock_no_setsockopt(struct socket *, int, int,
+- char __user *, int);
++ char __user *, unsigned int);
+ extern int sock_no_sendmsg(struct kiocb *, struct socket *,
+ struct msghdr *, size_t);
+ extern int sock_no_recvmsg(struct kiocb *, struct socket *,
+@@ -911,11 +911,11 @@ extern int sock_common_getsockopt(struct
+ extern int sock_common_recvmsg(struct kiocb *iocb, struct socket *sock,
+ struct msghdr *msg, size_t size, int flags);
+ extern int sock_common_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ extern int compat_sock_common_getsockopt(struct socket *sock, int level,
+ int optname, char __user *optval, int __user *optlen);
+ extern int compat_sock_common_setsockopt(struct socket *sock, int level,
+- int optname, char __user *optval, int optlen);
++ int optname, char __user *optval, unsigned int optlen);
+
+ extern void sk_common_release(struct sock *sk);
+
+diff -urpN linux-source-2.6.26.orig/include/net/tcp.h linux-source-2.6.26/include/net/tcp.h
+--- linux-source-2.6.26.orig/include/net/tcp.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/net/tcp.h 2009-10-08 00:33:19.000000000 -0600
+@@ -381,13 +381,13 @@ extern int tcp_getsockopt(struct sock
+ int __user *optlen);
+ extern int tcp_setsockopt(struct sock *sk, int level,
+ int optname, char __user *optval,
+- int optlen);
++ unsigned int optlen);
+ extern int compat_tcp_getsockopt(struct sock *sk,
+ int level, int optname,
+ char __user *optval, int __user *optlen);
+ extern int compat_tcp_setsockopt(struct sock *sk,
+ int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ extern void tcp_set_keepalive(struct sock *sk, int val);
+ extern int tcp_recvmsg(struct kiocb *iocb, struct sock *sk,
+ struct msghdr *msg,
+diff -urpN linux-source-2.6.26.orig/include/net/udp.h linux-source-2.6.26/include/net/udp.h
+--- linux-source-2.6.26.orig/include/net/udp.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/net/udp.h 2009-10-08 00:33:19.000000000 -0600
+@@ -145,7 +145,7 @@ extern unsigned int udp_poll(struct file
+ extern int udp_lib_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen);
+ extern int udp_lib_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen,
++ char __user *optval, unsigned int optlen,
+ int (*push_pending_frames)(struct sock *));
+
+ DECLARE_SNMP_STAT(struct udp_mib, udp_statistics);
+diff -urpN linux-source-2.6.26.orig/net/atm/common.c linux-source-2.6.26/net/atm/common.c
+--- linux-source-2.6.26.orig/net/atm/common.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/atm/common.c 2009-10-08 00:33:19.000000000 -0600
+@@ -679,7 +679,7 @@ static int check_qos(struct atm_qos *qos
+ }
+
+ int vcc_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct atm_vcc *vcc;
+ unsigned long value;
+diff -urpN linux-source-2.6.26.orig/net/atm/common.h linux-source-2.6.26/net/atm/common.h
+--- linux-source-2.6.26.orig/net/atm/common.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/atm/common.h 2009-10-08 00:33:19.000000000 -0600
+@@ -20,7 +20,7 @@ int vcc_sendmsg(struct kiocb *iocb, stru
+ unsigned int vcc_poll(struct file *file, struct socket *sock, poll_table *wait);
+ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
+ int vcc_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ int vcc_getsockopt(struct socket *sock, int level, int optname,
+ char __user *optval, int __user *optlen);
+
+diff -urpN linux-source-2.6.26.orig/net/atm/pvc.c linux-source-2.6.26/net/atm/pvc.c
+--- linux-source-2.6.26.orig/net/atm/pvc.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/atm/pvc.c 2009-10-08 00:33:19.000000000 -0600
+@@ -59,7 +59,7 @@ static int pvc_connect(struct socket *so
+ }
+
+ static int pvc_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ int error;
+diff -urpN linux-source-2.6.26.orig/net/atm/svc.c linux-source-2.6.26/net/atm/svc.c
+--- linux-source-2.6.26.orig/net/atm/svc.c 2009-08-18 23:15:10.000000000 -0600
++++ linux-source-2.6.26/net/atm/svc.c 2009-10-08 00:33:19.000000000 -0600
+@@ -446,7 +446,7 @@ int svc_change_qos(struct atm_vcc *vcc,s
+
+
+ static int svc_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct atm_vcc *vcc = ATM_SD(sock);
+diff -urpN linux-source-2.6.26.orig/net/ax25/af_ax25.c linux-source-2.6.26/net/ax25/af_ax25.c
+--- linux-source-2.6.26.orig/net/ax25/af_ax25.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ax25/af_ax25.c 2009-10-08 00:33:19.000000000 -0600
+@@ -525,7 +525,7 @@ ax25_cb *ax25_create_cb(void)
+ */
+
+ static int ax25_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ ax25_cb *ax25;
+diff -urpN linux-source-2.6.26.orig/net/bluetooth/hci_sock.c linux-source-2.6.26/net/bluetooth/hci_sock.c
+--- linux-source-2.6.26.orig/net/bluetooth/hci_sock.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/bluetooth/hci_sock.c 2009-10-08 00:33:19.000000000 -0600
+@@ -479,7 +479,7 @@ drop:
+ goto done;
+ }
+
+-static int hci_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int len)
++static int hci_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int len)
+ {
+ struct hci_ufilter uf = { .opcode = 0 };
+ struct sock *sk = sock->sk;
+diff -urpN linux-source-2.6.26.orig/net/bluetooth/l2cap.c linux-source-2.6.26/net/bluetooth/l2cap.c
+--- linux-source-2.6.26.orig/net/bluetooth/l2cap.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/bluetooth/l2cap.c 2009-10-08 00:33:19.000000000 -0600
+@@ -1026,7 +1026,7 @@ static int l2cap_sock_sendmsg(struct kio
+ return err;
+ }
+
+-static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen)
++static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct l2cap_options opts;
+diff -urpN linux-source-2.6.26.orig/net/bluetooth/rfcomm/sock.c linux-source-2.6.26/net/bluetooth/rfcomm/sock.c
+--- linux-source-2.6.26.orig/net/bluetooth/rfcomm/sock.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/bluetooth/rfcomm/sock.c 2009-10-08 00:33:19.000000000 -0600
+@@ -713,7 +713,7 @@ out:
+ return copied ? : err;
+ }
+
+-static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen)
++static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ int err = 0;
+diff -urpN linux-source-2.6.26.orig/net/bluetooth/sco.c linux-source-2.6.26/net/bluetooth/sco.c
+--- linux-source-2.6.26.orig/net/bluetooth/sco.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/bluetooth/sco.c 2009-10-08 00:33:19.000000000 -0600
+@@ -649,7 +649,7 @@ static int sco_sock_sendmsg(struct kiocb
+ return err;
+ }
+
+-static int sco_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen)
++static int sco_sock_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ int err = 0;
+diff -urpN linux-source-2.6.26.orig/net/can/raw.c linux-source-2.6.26/net/can/raw.c
+--- linux-source-2.6.26.orig/net/can/raw.c 2009-10-08 00:13:43.000000000 -0600
++++ linux-source-2.6.26/net/can/raw.c 2009-10-08 00:33:19.000000000 -0600
+@@ -406,7 +406,7 @@ static int raw_getname(struct socket *so
+ }
+
+ static int raw_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct raw_sock *ro = raw_sk(sk);
+diff -urpN linux-source-2.6.26.orig/net/compat.c linux-source-2.6.26/net/compat.c
+--- linux-source-2.6.26.orig/net/compat.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/compat.c 2009-10-08 00:33:19.000000000 -0600
+@@ -326,7 +326,7 @@ struct compat_sock_fprog {
+ };
+
+ static int do_set_attach_filter(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct compat_sock_fprog __user *fprog32 = (struct compat_sock_fprog __user *)optval;
+ struct sock_fprog __user *kfprog = compat_alloc_user_space(sizeof(struct sock_fprog));
+@@ -346,7 +346,7 @@ static int do_set_attach_filter(struct s
+ }
+
+ static int do_set_sock_timeout(struct socket *sock, int level,
+- int optname, char __user *optval, int optlen)
++ int optname, char __user *optval, unsigned int optlen)
+ {
+ struct compat_timeval __user *up = (struct compat_timeval __user *) optval;
+ struct timeval ktime;
+@@ -368,7 +368,7 @@ static int do_set_sock_timeout(struct so
+ }
+
+ static int compat_sock_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (optname == SO_ATTACH_FILTER)
+ return do_set_attach_filter(sock, level, optname,
+@@ -380,7 +380,7 @@ static int compat_sock_setsockopt(struct
+ }
+
+ asmlinkage long compat_sys_setsockopt(int fd, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ int err;
+ struct socket *sock;
+@@ -553,8 +553,8 @@ struct compat_group_filter {
+
+
+ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
+- char __user *optval, int optlen,
+- int (*setsockopt)(struct sock *,int,int,char __user *,int))
++ char __user *optval, unsigned int optlen,
++ int (*setsockopt)(struct sock *,int,int,char __user *,unsigned int))
+ {
+ char __user *koptval = optval;
+ int koptlen = optlen;
+diff -urpN linux-source-2.6.26.orig/net/core/sock.c linux-source-2.6.26/net/core/sock.c
+--- linux-source-2.6.26.orig/net/core/sock.c 2009-08-18 23:15:13.000000000 -0600
++++ linux-source-2.6.26/net/core/sock.c 2009-10-08 00:33:19.000000000 -0600
+@@ -439,7 +439,7 @@ static inline void sock_valbool_flag(str
+ */
+
+ int sock_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk=sock->sk;
+ int val;
+@@ -1568,7 +1568,7 @@ int sock_no_shutdown(struct socket *sock
+ }
+
+ int sock_no_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ return -EOPNOTSUPP;
+ }
+@@ -1870,7 +1870,7 @@ EXPORT_SYMBOL(sock_common_recvmsg);
+ * Set socket options on an inet socket.
+ */
+ int sock_common_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+
+@@ -1881,7 +1881,7 @@ EXPORT_SYMBOL(sock_common_setsockopt);
+
+ #ifdef CONFIG_COMPAT
+ int compat_sock_common_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+
+diff -urpN linux-source-2.6.26.orig/net/dccp/dccp.h linux-source-2.6.26/net/dccp/dccp.h
+--- linux-source-2.6.26.orig/net/dccp/dccp.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/dccp/dccp.h 2009-10-08 00:33:19.000000000 -0600
+@@ -274,14 +274,14 @@ extern int dccp_disconnect(struct soc
+ extern int dccp_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen);
+ extern int dccp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ #ifdef CONFIG_COMPAT
+ extern int compat_dccp_getsockopt(struct sock *sk,
+ int level, int optname,
+ char __user *optval, int __user *optlen);
+ extern int compat_dccp_setsockopt(struct sock *sk,
+ int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ #endif
+ extern int dccp_ioctl(struct sock *sk, int cmd, unsigned long arg);
+ extern int dccp_sendmsg(struct kiocb *iocb, struct sock *sk,
+diff -urpN linux-source-2.6.26.orig/net/dccp/proto.c linux-source-2.6.26/net/dccp/proto.c
+--- linux-source-2.6.26.orig/net/dccp/proto.c 2009-08-18 23:15:09.000000000 -0600
++++ linux-source-2.6.26/net/dccp/proto.c 2009-10-08 00:33:19.000000000 -0600
+@@ -432,7 +432,7 @@ out:
+ EXPORT_SYMBOL_GPL(dccp_ioctl);
+
+ static int dccp_setsockopt_service(struct sock *sk, const __be32 service,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct dccp_sock *dp = dccp_sk(sk);
+ struct dccp_service_list *sl = NULL;
+@@ -505,7 +505,7 @@ out_free_val:
+ }
+
+ static int do_dccp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct dccp_sock *dp = dccp_sk(sk);
+ int val, err = 0;
+@@ -572,7 +572,7 @@ static int do_dccp_setsockopt(struct soc
+ }
+
+ int dccp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level != SOL_DCCP)
+ return inet_csk(sk)->icsk_af_ops->setsockopt(sk, level,
+@@ -585,7 +585,7 @@ EXPORT_SYMBOL_GPL(dccp_setsockopt);
+
+ #ifdef CONFIG_COMPAT
+ int compat_dccp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level != SOL_DCCP)
+ return inet_csk_compat_setsockopt(sk, level, optname,
+diff -urpN linux-source-2.6.26.orig/net/decnet/af_decnet.c linux-source-2.6.26/net/decnet/af_decnet.c
+--- linux-source-2.6.26.orig/net/decnet/af_decnet.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/decnet/af_decnet.c 2009-10-08 00:33:19.000000000 -0600
+@@ -157,7 +157,7 @@ static struct hlist_head dn_sk_hash[DN_S
+ static struct hlist_head dn_wild_sk;
+ static atomic_t decnet_memory_allocated;
+
+-static int __dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen, int flags);
++static int __dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen, int flags);
+ static int __dn_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen, int flags);
+
+ static struct hlist_head *dn_find_list(struct sock *sk)
+@@ -1328,7 +1328,7 @@ out:
+ return err;
+ }
+
+-static int dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen)
++static int dn_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ int err;
+@@ -1340,7 +1340,7 @@ static int dn_setsockopt(struct socket *
+ return err;
+ }
+
+-static int __dn_setsockopt(struct socket *sock, int level,int optname, char __user *optval, int optlen, int flags)
++static int __dn_setsockopt(struct socket *sock, int level,int optname, char __user *optval, unsigned int optlen, int flags)
+ {
+ struct sock *sk = sock->sk;
+ struct dn_scp *scp = DN_SK(sk);
+diff -urpN linux-source-2.6.26.orig/net/ipv4/inet_connection_sock.c linux-source-2.6.26/net/ipv4/inet_connection_sock.c
+--- linux-source-2.6.26.orig/net/ipv4/inet_connection_sock.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv4/inet_connection_sock.c 2009-10-08 00:33:40.000000000 -0600
+@@ -677,7 +677,7 @@ int inet_csk_compat_getsockopt(struct so
+ EXPORT_SYMBOL_GPL(inet_csk_compat_getsockopt);
+
+ int inet_csk_compat_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ const struct inet_connection_sock *icsk = inet_csk(sk);
+
+diff -urpN linux-source-2.6.26.orig/net/ipv4/ipmr.c linux-source-2.6.26/net/ipv4/ipmr.c
+--- linux-source-2.6.26.orig/net/ipv4/ipmr.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv4/ipmr.c 2009-10-08 00:41:11.000000000 -0600
+@@ -867,7 +867,7 @@ static void mrtsock_destruct(struct sock
+ * MOSPF/PIM router set up we can clean this up.
+ */
+
+-int ip_mroute_setsockopt(struct sock *sk,int optname,char __user *optval,int optlen)
++int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsigned int optlen)
+ {
+ int ret;
+ struct vifctl vif;
+diff -urpN linux-source-2.6.26.orig/net/ipv4/ip_sockglue.c linux-source-2.6.26/net/ipv4/ip_sockglue.c
+--- linux-source-2.6.26.orig/net/ipv4/ip_sockglue.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv4/ip_sockglue.c 2009-10-08 00:33:40.000000000 -0600
+@@ -410,7 +410,7 @@ out:
+ */
+
+ static int do_ip_setsockopt(struct sock *sk, int level,
+- int optname, char __user *optval, int optlen)
++ int optname, char __user *optval, unsigned int optlen)
+ {
+ struct inet_sock *inet = inet_sk(sk);
+ int val=0,err;
+@@ -893,7 +893,7 @@ e_inval:
+ }
+
+ int ip_setsockopt(struct sock *sk, int level,
+- int optname, char __user *optval, int optlen)
++ int optname, char __user *optval, unsigned int optlen)
+ {
+ int err;
+
+@@ -917,7 +917,7 @@ int ip_setsockopt(struct sock *sk, int l
+
+ #ifdef CONFIG_COMPAT
+ int compat_ip_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ int err;
+
+diff -urpN linux-source-2.6.26.orig/net/ipv4/raw.c linux-source-2.6.26/net/ipv4/raw.c
+--- linux-source-2.6.26.orig/net/ipv4/raw.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv4/raw.c 2009-10-08 00:33:40.000000000 -0600
+@@ -737,7 +737,7 @@ out: return ret;
+ }
+
+ static int do_raw_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (optname == ICMP_FILTER) {
+ if (inet_sk(sk)->num != IPPROTO_ICMP)
+@@ -749,7 +749,7 @@ static int do_raw_setsockopt(struct sock
+ }
+
+ static int raw_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level != SOL_RAW)
+ return ip_setsockopt(sk, level, optname, optval, optlen);
+@@ -758,7 +758,7 @@ static int raw_setsockopt(struct sock *s
+
+ #ifdef CONFIG_COMPAT
+ static int compat_raw_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level != SOL_RAW)
+ return compat_ip_setsockopt(sk, level, optname, optval, optlen);
+diff -urpN linux-source-2.6.26.orig/net/ipv4/tcp.c linux-source-2.6.26/net/ipv4/tcp.c
+--- linux-source-2.6.26.orig/net/ipv4/tcp.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv4/tcp.c 2009-10-08 00:33:40.000000000 -0600
+@@ -1985,7 +1985,7 @@ int tcp_disconnect(struct sock *sk, int
+ * Socket option code for TCP.
+ */
+ static int do_tcp_setsockopt(struct sock *sk, int level,
+- int optname, char __user *optval, int optlen)
++ int optname, char __user *optval, unsigned int optlen)
+ {
+ struct tcp_sock *tp = tcp_sk(sk);
+ struct inet_connection_sock *icsk = inet_csk(sk);
+@@ -2173,7 +2173,7 @@ static int do_tcp_setsockopt(struct sock
+ }
+
+ int tcp_setsockopt(struct sock *sk, int level, int optname, char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ struct inet_connection_sock *icsk = inet_csk(sk);
+
+@@ -2185,7 +2185,7 @@ int tcp_setsockopt(struct sock *sk, int
+
+ #ifdef CONFIG_COMPAT
+ int compat_tcp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level != SOL_TCP)
+ return inet_csk_compat_setsockopt(sk, level, optname,
+diff -urpN linux-source-2.6.26.orig/net/ipv4/udp.c linux-source-2.6.26/net/ipv4/udp.c
+--- linux-source-2.6.26.orig/net/ipv4/udp.c 2009-08-18 23:15:10.000000000 -0600
++++ linux-source-2.6.26/net/ipv4/udp.c 2009-10-08 00:33:40.000000000 -0600
+@@ -1276,7 +1276,7 @@ int udp_destroy_sock(struct sock *sk)
+ * Socket option code for UDP
+ */
+ int udp_lib_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen,
++ char __user *optval, unsigned int optlen,
+ int (*push_pending_frames)(struct sock *))
+ {
+ struct udp_sock *up = udp_sk(sk);
+@@ -1357,7 +1357,7 @@ int udp_lib_setsockopt(struct sock *sk,
+ }
+
+ int udp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level == SOL_UDP || level == SOL_UDPLITE)
+ return udp_lib_setsockopt(sk, level, optname, optval, optlen,
+@@ -1367,7 +1367,7 @@ int udp_setsockopt(struct sock *sk, int
+
+ #ifdef CONFIG_COMPAT
+ int compat_udp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level == SOL_UDP || level == SOL_UDPLITE)
+ return udp_lib_setsockopt(sk, level, optname, optval, optlen,
+diff -urpN linux-source-2.6.26.orig/net/ipv4/udp_impl.h linux-source-2.6.26/net/ipv4/udp_impl.h
+--- linux-source-2.6.26.orig/net/ipv4/udp_impl.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv4/udp_impl.h 2009-10-08 00:33:40.000000000 -0600
+@@ -11,13 +11,13 @@ extern void __udp4_lib_err(struct sk_bu
+ extern int udp_v4_get_port(struct sock *sk, unsigned short snum);
+
+ extern int udp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ extern int udp_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen);
+
+ #ifdef CONFIG_COMPAT
+ extern int compat_udp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ extern int compat_udp_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen);
+ #endif
+diff -urpN linux-source-2.6.26.orig/net/ipv6/ip6mr.c linux-source-2.6.26/net/ipv6/ip6mr.c
+--- linux-source-2.6.26.orig/net/ipv6/ip6mr.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv6/ip6mr.c 2009-10-08 00:33:40.000000000 -0600
+@@ -1144,7 +1144,7 @@ int ip6mr_sk_done(struct sock *sk)
+ * MOSPF/PIM router set up we can clean this up.
+ */
+
+-int ip6_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, int optlen)
++int ip6_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsigned int optlen)
+ {
+ int ret;
+ struct mif6ctl vif;
+diff -urpN linux-source-2.6.26.orig/net/ipv6/ipv6_sockglue.c linux-source-2.6.26/net/ipv6/ipv6_sockglue.c
+--- linux-source-2.6.26.orig/net/ipv6/ipv6_sockglue.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv6/ipv6_sockglue.c 2009-10-08 00:33:40.000000000 -0600
+@@ -128,7 +128,7 @@ struct ipv6_txoptions *ipv6_update_optio
+ }
+
+ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct ipv6_pinfo *np = inet6_sk(sk);
+ struct net *net = sock_net(sk);
+@@ -751,7 +751,7 @@ e_inval:
+ }
+
+ int ipv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ int err;
+
+@@ -779,7 +779,7 @@ EXPORT_SYMBOL(ipv6_setsockopt);
+
+ #ifdef CONFIG_COMPAT
+ int compat_ipv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ int err;
+
+diff -urpN linux-source-2.6.26.orig/net/ipv6/raw.c linux-source-2.6.26/net/ipv6/raw.c
+--- linux-source-2.6.26.orig/net/ipv6/raw.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv6/raw.c 2009-10-08 00:33:40.000000000 -0600
+@@ -959,7 +959,7 @@ static int rawv6_geticmpfilter(struct so
+
+
+ static int do_rawv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct raw6_sock *rp = raw6_sk(sk);
+ int val;
+@@ -1002,7 +1002,7 @@ static int do_rawv6_setsockopt(struct so
+ }
+
+ static int rawv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ switch(level) {
+ case SOL_RAW:
+@@ -1026,7 +1026,7 @@ static int rawv6_setsockopt(struct sock
+
+ #ifdef CONFIG_COMPAT
+ static int compat_rawv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ switch (level) {
+ case SOL_RAW:
+diff -urpN linux-source-2.6.26.orig/net/ipv6/udp.c linux-source-2.6.26/net/ipv6/udp.c
+--- linux-source-2.6.26.orig/net/ipv6/udp.c 2009-08-18 23:15:09.000000000 -0600
++++ linux-source-2.6.26/net/ipv6/udp.c 2009-10-08 00:33:40.000000000 -0600
+@@ -896,7 +896,7 @@ int udpv6_destroy_sock(struct sock *sk)
+ * Socket option code for UDP
+ */
+ int udpv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level == SOL_UDP || level == SOL_UDPLITE)
+ return udp_lib_setsockopt(sk, level, optname, optval, optlen,
+@@ -906,7 +906,7 @@ int udpv6_setsockopt(struct sock *sk, in
+
+ #ifdef CONFIG_COMPAT
+ int compat_udpv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ if (level == SOL_UDP || level == SOL_UDPLITE)
+ return udp_lib_setsockopt(sk, level, optname, optval, optlen,
+diff -urpN linux-source-2.6.26.orig/net/ipv6/udp_impl.h linux-source-2.6.26/net/ipv6/udp_impl.h
+--- linux-source-2.6.26.orig/net/ipv6/udp_impl.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipv6/udp_impl.h 2009-10-08 00:33:40.000000000 -0600
+@@ -16,10 +16,10 @@ extern int udp_v6_get_port(struct sock *
+ extern int udpv6_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen);
+ extern int udpv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ #ifdef CONFIG_COMPAT
+ extern int compat_udpv6_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen);
++ char __user *optval, unsigned int optlen);
+ extern int compat_udpv6_getsockopt(struct sock *sk, int level, int optname,
+ char __user *optval, int __user *optlen);
+ #endif
+diff -urpN linux-source-2.6.26.orig/net/ipx/af_ipx.c linux-source-2.6.26/net/ipx/af_ipx.c
+--- linux-source-2.6.26.orig/net/ipx/af_ipx.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/ipx/af_ipx.c 2009-10-08 00:33:40.000000000 -0600
+@@ -1291,7 +1291,7 @@ const char *ipx_device_name(struct ipx_i
+ * socket object. */
+
+ static int ipx_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ int opt;
+diff -urpN linux-source-2.6.26.orig/net/irda/af_irda.c linux-source-2.6.26/net/irda/af_irda.c
+--- linux-source-2.6.26.orig/net/irda/af_irda.c 2009-10-08 00:08:07.000000000 -0600
++++ linux-source-2.6.26/net/irda/af_irda.c 2009-10-08 00:33:40.000000000 -0600
+@@ -1827,7 +1827,7 @@ static int irda_compat_ioctl(struct sock
+ *
+ */
+ static int irda_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct irda_sock *self = irda_sk(sk);
+diff -urpN linux-source-2.6.26.orig/net/llc/af_llc.c linux-source-2.6.26/net/llc/af_llc.c
+--- linux-source-2.6.26.orig/net/llc/af_llc.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/llc/af_llc.c 2009-10-08 00:33:40.000000000 -0600
+@@ -975,7 +975,7 @@ static int llc_ui_ioctl(struct socket *s
+ * Set various connection specific parameters.
+ */
+ static int llc_ui_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct llc_sock *llc = llc_sk(sk);
+diff -urpN linux-source-2.6.26.orig/net/netfilter/nf_sockopt.c linux-source-2.6.26/net/netfilter/nf_sockopt.c
+--- linux-source-2.6.26.orig/net/netfilter/nf_sockopt.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/netfilter/nf_sockopt.c 2009-10-08 00:40:27.000000000 -0600
+@@ -116,7 +116,7 @@ static int nf_sockopt(struct sock *sk, i
+ }
+
+ int nf_setsockopt(struct sock *sk, int pf, int val, char __user *opt,
+- int len)
++ unsigned int len)
+ {
+ return nf_sockopt(sk, pf, val, opt, &len, 0);
+ }
+@@ -156,7 +156,7 @@ static int compat_nf_sockopt(struct sock
+ }
+
+ int compat_nf_setsockopt(struct sock *sk, int pf,
+- int val, char __user *opt, int len)
++ int val, char __user *opt, unsigned int len)
+ {
+ return compat_nf_sockopt(sk, pf, val, opt, &len, 0);
+ }
+diff -urpN linux-source-2.6.26.orig/net/netlink/af_netlink.c linux-source-2.6.26/net/netlink/af_netlink.c
+--- linux-source-2.6.26.orig/net/netlink/af_netlink.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/netlink/af_netlink.c 2009-10-08 00:33:40.000000000 -0600
+@@ -1113,7 +1113,7 @@ static void netlink_update_socket_mc(str
+ }
+
+ static int netlink_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct netlink_sock *nlk = nlk_sk(sk);
+diff -urpN linux-source-2.6.26.orig/net/netrom/af_netrom.c linux-source-2.6.26/net/netrom/af_netrom.c
+--- linux-source-2.6.26.orig/net/netrom/af_netrom.c 2009-10-08 00:14:57.000000000 -0600
++++ linux-source-2.6.26/net/netrom/af_netrom.c 2009-10-08 00:33:40.000000000 -0600
+@@ -288,7 +288,7 @@ void nr_destroy_socket(struct sock *sk)
+ */
+
+ static int nr_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct nr_sock *nr = nr_sk(sk);
+diff -urpN linux-source-2.6.26.orig/net/packet/af_packet.c linux-source-2.6.26/net/packet/af_packet.c
+--- linux-source-2.6.26.orig/net/packet/af_packet.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/packet/af_packet.c 2009-10-08 00:33:40.000000000 -0600
+@@ -1304,7 +1304,7 @@ static void packet_flush_mclist(struct s
+ }
+
+ static int
+-packet_setsockopt(struct socket *sock, int level, int optname, char __user *optval, int optlen)
++packet_setsockopt(struct socket *sock, int level, int optname, char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct packet_sock *po = pkt_sk(sk);
+diff -urpN linux-source-2.6.26.orig/net/rose/af_rose.c linux-source-2.6.26/net/rose/af_rose.c
+--- linux-source-2.6.26.orig/net/rose/af_rose.c 2009-10-08 00:09:45.000000000 -0600
++++ linux-source-2.6.26/net/rose/af_rose.c 2009-10-08 00:34:07.000000000 -0600
+@@ -359,7 +359,7 @@ void rose_destroy_socket(struct sock *sk
+ */
+
+ static int rose_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sock *sk = sock->sk;
+ struct rose_sock *rose = rose_sk(sk);
+diff -urpN linux-source-2.6.26.orig/net/rxrpc/af_rxrpc.c linux-source-2.6.26/net/rxrpc/af_rxrpc.c
+--- linux-source-2.6.26.orig/net/rxrpc/af_rxrpc.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/rxrpc/af_rxrpc.c 2009-10-08 00:34:07.000000000 -0600
+@@ -506,7 +506,7 @@ out:
+ * set RxRPC socket options
+ */
+ static int rxrpc_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct rxrpc_sock *rx = rxrpc_sk(sock->sk);
+ unsigned min_sec_level;
+diff -urpN linux-source-2.6.26.orig/net/sctp/socket.c linux-source-2.6.26/net/sctp/socket.c
+--- linux-source-2.6.26.orig/net/sctp/socket.c 2009-08-18 23:15:09.000000000 -0600
++++ linux-source-2.6.26/net/sctp/socket.c 2009-10-08 00:44:09.000000000 -0600
+@@ -1939,7 +1939,8 @@ out:
+ * instead a error will be indicated to the user.
+ */
+ static int sctp_setsockopt_disable_fragments(struct sock *sk,
+- char __user *optval, int optlen)
++ char __user *optval,
++ unsigned int optlen)
+ {
+ int val;
+
+@@ -1955,7 +1956,7 @@ static int sctp_setsockopt_disable_fragm
+ }
+
+ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ if (optlen > sizeof(struct sctp_event_subscribe))
+ return -EINVAL;
+@@ -1976,7 +1977,7 @@ static int sctp_setsockopt_events(struct
+ * association is closed.
+ */
+ static int sctp_setsockopt_autoclose(struct sock *sk, char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ struct sctp_sock *sp = sctp_sk(sk);
+
+@@ -2230,7 +2231,8 @@ static int sctp_apply_peer_addr_params(s
+ }
+
+ static int sctp_setsockopt_peer_addr_params(struct sock *sk,
+- char __user *optval, int optlen)
++ char __user *optval,
++ unsigned int optlen)
+ {
+ struct sctp_paddrparams params;
+ struct sctp_transport *trans = NULL;
+@@ -2334,7 +2336,7 @@ static int sctp_setsockopt_peer_addr_par
+ */
+
+ static int sctp_setsockopt_delayed_ack_time(struct sock *sk,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ struct sctp_assoc_value params;
+ struct sctp_transport *trans = NULL;
+@@ -2416,7 +2418,7 @@ static int sctp_setsockopt_delayed_ack_t
+ * by the change). With TCP-style sockets, this option is inherited by
+ * sockets derived from a listener socket.
+ */
+-static int sctp_setsockopt_initmsg(struct sock *sk, char __user *optval, int optlen)
++static int sctp_setsockopt_initmsg(struct sock *sk, char __user *optval, unsigned int optlen)
+ {
+ struct sctp_initmsg sinit;
+ struct sctp_sock *sp = sctp_sk(sk);
+@@ -2453,7 +2455,8 @@ static int sctp_setsockopt_initmsg(struc
+ * to this call if the caller is using the UDP model.
+ */
+ static int sctp_setsockopt_default_send_param(struct sock *sk,
+- char __user *optval, int optlen)
++ char __user *optval,
++ unsigned int optlen)
+ {
+ struct sctp_sndrcvinfo info;
+ struct sctp_association *asoc;
+@@ -2492,7 +2495,7 @@ static int sctp_setsockopt_default_send_
+ * association peer's addresses.
+ */
+ static int sctp_setsockopt_primary_addr(struct sock *sk, char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ struct sctp_prim prim;
+ struct sctp_transport *trans;
+@@ -2521,7 +2524,7 @@ static int sctp_setsockopt_primary_addr(
+ * integer boolean flag.
+ */
+ static int sctp_setsockopt_nodelay(struct sock *sk, char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ int val;
+
+@@ -2546,7 +2549,8 @@ static int sctp_setsockopt_nodelay(struc
+ * be changed.
+ *
+ */
+-static int sctp_setsockopt_rtoinfo(struct sock *sk, char __user *optval, int optlen) {
++static int sctp_setsockopt_rtoinfo(struct sock *sk, char __user *optval, unsigned int optlen)
++{
+ struct sctp_rtoinfo rtoinfo;
+ struct sctp_association *asoc;
+
+@@ -2598,7 +2602,7 @@ static int sctp_setsockopt_rtoinfo(struc
+ * See [SCTP] for more information.
+ *
+ */
+-static int sctp_setsockopt_associnfo(struct sock *sk, char __user *optval, int optlen)
++static int sctp_setsockopt_associnfo(struct sock *sk, char __user *optval, unsigned int optlen)
+ {
+
+ struct sctp_assocparams assocparams;
+@@ -2670,7 +2674,7 @@ static int sctp_setsockopt_associnfo(str
+ * addresses and a user will receive both PF_INET6 and PF_INET type
+ * addresses on the socket.
+ */
+-static int sctp_setsockopt_mappedv4(struct sock *sk, char __user *optval, int optlen)
++static int sctp_setsockopt_mappedv4(struct sock *sk, char __user *optval, unsigned int optlen)
+ {
+ int val;
+ struct sctp_sock *sp = sctp_sk(sk);
+@@ -2697,7 +2701,7 @@ static int sctp_setsockopt_mappedv4(stru
+ * PMTU of the underlying association is smaller than the value set by
+ * the user.
+ */
+-static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, int optlen)
++static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, unsigned int optlen)
+ {
+ struct sctp_association *asoc;
+ struct sctp_sock *sp = sctp_sk(sk);
+@@ -2729,7 +2733,7 @@ static int sctp_setsockopt_maxseg(struct
+ * set primary request:
+ */
+ static int sctp_setsockopt_peer_primary_addr(struct sock *sk, char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ struct sctp_sock *sp;
+ struct sctp_endpoint *ep;
+@@ -2780,7 +2784,7 @@ static int sctp_setsockopt_peer_primary_
+ }
+
+ static int sctp_setsockopt_adaptation_layer(struct sock *sk, char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ struct sctp_setadaptation adaptation;
+
+@@ -2809,7 +2813,7 @@ static int sctp_setsockopt_adaptation_la
+ * saved with outbound messages.
+ */
+ static int sctp_setsockopt_context(struct sock *sk, char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ struct sctp_assoc_value params;
+ struct sctp_sock *sp;
+@@ -2860,7 +2864,7 @@ static int sctp_setsockopt_context(struc
+ */
+ static int sctp_setsockopt_fragment_interleave(struct sock *sk,
+ char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ int val;
+
+@@ -2886,7 +2890,7 @@ static int sctp_setsockopt_fragment_inte
+ */
+ static int sctp_setsockopt_partial_delivery_point(struct sock *sk,
+ char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ u32 val;
+
+@@ -2913,7 +2917,7 @@ static int sctp_setsockopt_partial_deliv
+ */
+ static int sctp_setsockopt_maxburst(struct sock *sk,
+ char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ struct sctp_assoc_value params;
+ struct sctp_sock *sp;
+@@ -2960,8 +2964,8 @@ static int sctp_setsockopt_maxburst(stru
+ * will only effect future associations on the socket.
+ */
+ static int sctp_setsockopt_auth_chunk(struct sock *sk,
+- char __user *optval,
+- int optlen)
++ char __user *optval,
++ unsigned int optlen)
+ {
+ struct sctp_authchunk val;
+
+@@ -2992,8 +2996,8 @@ static int sctp_setsockopt_auth_chunk(st
+ * endpoint requires the peer to use.
+ */
+ static int sctp_setsockopt_hmac_ident(struct sock *sk,
+- char __user *optval,
+- int optlen)
++ char __user *optval,
++ unsigned int optlen)
+ {
+ struct sctp_hmacalgo *hmacs;
+ u32 idents;
+@@ -3035,7 +3039,7 @@ out:
+ */
+ static int sctp_setsockopt_auth_key(struct sock *sk,
+ char __user *optval,
+- int optlen)
++ unsigned int optlen)
+ {
+ struct sctp_authkey *authkey;
+ struct sctp_association *asoc;
+@@ -3080,8 +3084,8 @@ out:
+ * the association shared key.
+ */
+ static int sctp_setsockopt_active_key(struct sock *sk,
+- char __user *optval,
+- int optlen)
++ char __user *optval,
++ unsigned int optlen)
+ {
+ struct sctp_authkeyid val;
+ struct sctp_association *asoc;
+@@ -3108,8 +3112,8 @@ static int sctp_setsockopt_active_key(st
+ * This set option will delete a shared secret key from use.
+ */
+ static int sctp_setsockopt_del_key(struct sock *sk,
+- char __user *optval,
+- int optlen)
++ char __user *optval,
++ unsigned int optlen)
+ {
+ struct sctp_authkeyid val;
+ struct sctp_association *asoc;
+@@ -3152,7 +3156,7 @@ static int sctp_setsockopt_del_key(struc
+ * optlen - the size of the buffer.
+ */
+ SCTP_STATIC int sctp_setsockopt(struct sock *sk, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ int retval = 0;
+
+diff -urpN linux-source-2.6.26.orig/net/socket.c linux-source-2.6.26/net/socket.c
+--- linux-source-2.6.26.orig/net/socket.c 2009-08-18 23:15:14.000000000 -0600
++++ linux-source-2.6.26/net/socket.c 2009-10-08 00:34:07.000000000 -0600
+@@ -2287,7 +2287,7 @@ int kernel_getsockopt(struct socket *soc
+ }
+
+ int kernel_setsockopt(struct socket *sock, int level, int optname,
+- char *optval, int optlen)
++ char *optval, unsigned int optlen)
+ {
+ mm_segment_t oldfs = get_fs();
+ int err;
+diff -urpN linux-source-2.6.26.orig/net/tipc/socket.c linux-source-2.6.26/net/tipc/socket.c
+--- linux-source-2.6.26.orig/net/tipc/socket.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/tipc/socket.c 2009-10-08 00:34:07.000000000 -0600
+@@ -1654,7 +1654,7 @@ restart:
+ */
+
+ static int setsockopt(struct socket *sock,
+- int lvl, int opt, char __user *ov, int ol)
++ int lvl, int opt, char __user *ov, unsigned int ol)
+ {
+ struct sock *sk = sock->sk;
+ struct tipc_port *tport = tipc_sk_port(sk);
+diff -urpN linux-source-2.6.26.orig/net/x25/af_x25.c linux-source-2.6.26/net/x25/af_x25.c
+--- linux-source-2.6.26.orig/net/x25/af_x25.c 2009-08-18 23:15:13.000000000 -0600
++++ linux-source-2.6.26/net/x25/af_x25.c 2009-10-08 00:34:07.000000000 -0600
+@@ -396,7 +396,7 @@ void x25_destroy_socket(struct sock *sk)
+ */
+
+ static int x25_setsockopt(struct socket *sock, int level, int optname,
+- char __user *optval, int optlen)
++ char __user *optval, unsigned int optlen)
+ {
+ int opt;
+ struct sock *sk = sock->sk;
Modified: dists/lenny/linux-2.6-abi/debian/patches/series/18abi
==============================================================================
--- dists/lenny/linux-2.6-abi/debian/patches/series/18abi Thu Oct 8 06:30:33 2009 (r14353)
+++ dists/lenny/linux-2.6-abi/debian/patches/series/18abi Thu Oct 8 15:30:02 2009 (r14354)
@@ -4,3 +4,4 @@
+ bugfix/x86/add-a-synthetic-TSC_RELIABLE-feature-bit.patch
+ bugfix/x86/skip-verification-by-the-watchdog-for-TSC-clocksource.patch
+ bugfix/x86/vmware-look-for-DMI-string-in-product-serial-key.patch
++ bugfix/all/net-make-setsockopt-optlen-be-unsigned.patch
More information about the Kernel-svn-changes
mailing list