From 14e26f827efc834c33417cd7cdcddae42c36e1ba Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Tue, 27 Dec 2005 13:57:59 -0800 Subject: [PATCH] --- yaml --- r: 15338 b: refs/heads/master c: 1b93ae64cabe5e28dd5a1f35f96f938ca4f6ae20 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/ppp_generic.c | 3 --- trunk/net/core/filter.c | 4 ++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index fdeafe302b48..0054924d5d2e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6732badee0dad467fcc9dd0168af8677b2b1bc2f +refs/heads/master: 1b93ae64cabe5e28dd5a1f35f96f938ca4f6ae20 diff --git a/trunk/drivers/net/ppp_generic.c b/trunk/drivers/net/ppp_generic.c index 50430f79f8cf..1c6d328165bb 100644 --- a/trunk/drivers/net/ppp_generic.c +++ b/trunk/drivers/net/ppp_generic.c @@ -524,9 +524,6 @@ static int get_filter(void __user *arg, struct sock_filter **p) if (copy_from_user(&uprog, arg, sizeof(uprog))) return -EFAULT; - if (uprog.len > BPF_MAXINSNS) - return -EINVAL; - if (!uprog.len) { *p = NULL; return 0; diff --git a/trunk/net/core/filter.c b/trunk/net/core/filter.c index 2841bfce29d6..3a10e0bc90e8 100644 --- a/trunk/net/core/filter.c +++ b/trunk/net/core/filter.c @@ -293,7 +293,7 @@ int sk_chk_filter(struct sock_filter *filter, int flen) struct sock_filter *ftest; int pc; - if (((unsigned int)flen >= (~0U / sizeof(struct sock_filter))) || flen == 0) + if (flen == 0 || flen > BPF_MAXINSNS) return -EINVAL; /* check the filter code now */ @@ -360,7 +360,7 @@ int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk) int err; /* Make sure new filter is there and in the right amounts. */ - if (fprog->filter == NULL || fprog->len > BPF_MAXINSNS) + if (fprog->filter == NULL) return -EINVAL; fp = sock_kmalloc(sk, fsize+sizeof(*fp), GFP_KERNEL);