diff options
author | jkim <jkim@FreeBSD.org> | 2006-01-03 20:34:41 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2006-01-03 20:34:41 +0000 |
commit | dc23cee8b8a93763105123f83ff2e28d93db6f55 (patch) | |
tree | 679f2b2e843f265ad35d5a93c82032b93c6f37bd | |
parent | ae104d9814b199542431e6bc4bd83c1a9efdde8a (diff) | |
download | FreeBSD-src-dc23cee8b8a93763105123f83ff2e28d93db6f55.zip FreeBSD-src-dc23cee8b8a93763105123f83ff2e28d93db6f55.tar.gz |
Correctly check the filter length. I committed the wrong version.
Pointy hat to me.
-rw-r--r-- | sys/net/bpf_filter.c | 7 |
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) { |