summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2006-01-03 20:34:41 +0000
committerjkim <jkim@FreeBSD.org>2006-01-03 20:34:41 +0000
commitdc23cee8b8a93763105123f83ff2e28d93db6f55 (patch)
tree679f2b2e843f265ad35d5a93c82032b93c6f37bd /sys
parentae104d9814b199542431e6bc4bd83c1a9efdde8a (diff)
downloadFreeBSD-src-dc23cee8b8a93763105123f83ff2e28d93db6f55.zip
FreeBSD-src-dc23cee8b8a93763105123f83ff2e28d93db6f55.tar.gz
Correctly check the filter length. I committed the wrong version.
Pointy hat to me.
Diffstat (limited to 'sys')
-rw-r--r--sys/net/bpf_filter.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/net/bpf_filter.c b/sys/net/bpf_filter.c
index 40b54bf..77dab7d 100644
--- a/sys/net/bpf_filter.c
+++ b/sys/net/bpf_filter.c
@@ -520,7 +520,12 @@ bpf_validate(f, len)
register int i;
register const struct bpf_insn *p;
- if (len < 1)
+ /* Do not accept negative length filter. */
+ if (len < 0)
+ return 0;
+
+ /* An empty filter means accept all. */
+ if (len == 0)
return 1;
for (i = 0; i < len; ++i) {
OpenPOWER on IntegriCloud