From: Arjan van de Ven Date: Wed, 30 Sep 2009 11:54:47 +0000 (+0200) Subject: net: Make the copy length in af_packet sockopt handler unsigned X-Git-Tag: v2.6.30.9~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80a761c59bfe01de1deeb5fc66f5b7fbb3e1bfcf;p=thirdparty%2Fkernel%2Fstable.git net: Make the copy length in af_packet sockopt handler unsigned fixed upstream in commit b7058842c940ad2c08dd829b21e5c92ebe3b8758 in a different way The length of the to-copy data structure is currently stored in a signed integer. However many comparisons are done with sizeof(..) which is unsigned. It's more suitable for this variable to be unsigned to make these comparisons more naturally right. Signed-off-by: Arjan van de Ven Cc: David S. Miller Cc: Ingo Molnar Cc: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index f546e81acc450..854d14bbe6581 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -1501,7 +1501,7 @@ packet_setsockopt(struct socket *sock, int level, int optname, char __user *optv static int packet_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen) { - int len; + unsigned int len; int val; struct sock *sk = sock->sk; struct packet_sock *po = pkt_sk(sk); @@ -1514,7 +1514,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, if (get_user(len, optlen)) return -EFAULT; - if (len < 0) + if ((int)len < 0) return -EINVAL; switch(optname) {