filter: use unsigned int to silence static checker warning
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 17 Oct 2011 21:04:20 +0000 (21:04 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Oct 2011 23:35:51 +0000 (19:35 -0400)
This is just a cleanup.

My testing version of Smatch warns about this:
net/core/filter.c +380 check_load_and_stores(6)
warn: check 'flen' for negative values

flen comes from the user.  We try to clamp the values here between 1
and BPF_MAXINSNS but the clamp doesn't work because it could be
negative.  This is a bug, but it's not exploitable.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/filter.h
net/core/filter.c

index 741956fa5bfdcc371ab712ade0210fe5de69fe69..8eeb205f298b078ccbaa714b2d171a50da40096d 100644 (file)
@@ -155,7 +155,7 @@ extern unsigned int sk_run_filter(const struct sk_buff *skb,
                                  const struct sock_filter *filter);
 extern int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk);
 extern int sk_detach_filter(struct sock *sk);
-extern int sk_chk_filter(struct sock_filter *filter, int flen);
+extern int sk_chk_filter(struct sock_filter *filter, unsigned int flen);
 
 #ifdef CONFIG_BPF_JIT
 extern void bpf_jit_compile(struct sk_filter *fp);
index 8fcc2d776e096164e134db9256cba2ac17dc4a92..5dea452792155fffa062a59641c1862e26f19fe0 100644 (file)
@@ -436,7 +436,7 @@ error:
  *
  * Returns 0 if the rule set is legal or -EINVAL if not.
  */
-int sk_chk_filter(struct sock_filter *filter, int flen)
+int sk_chk_filter(struct sock_filter *filter, unsigned int flen)
 {
        /*
         * Valid instructions are initialized to non-0.