diff options
author | Daniel Borkmann <dborkman@redhat.com> | 2013-06-15 20:57:47 +0200 |
---|---|---|
committer | Daniel Borkmann <dborkman@redhat.com> | 2013-06-15 20:57:47 +0200 |
commit | 1bb8cf17318a09ee55a99043703512ec37560b29 (patch) | |
tree | 2bcfd5795aeef5efec437f53483ea983e0688776 | |
parent | d9b5259582a6073d1c2bada8c3294c7550c7b678 (diff) |
bpf: use Linux' define of BPF_MAXINSNS
Do not necessarily define our own, only in case the Linux one is
not available.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
-rw-r--r-- | bpf_insns.h | 4 | ||||
-rw-r--r-- | bpf_parser.y | 16 |
2 files changed, 11 insertions, 9 deletions
diff --git a/bpf_insns.h b/bpf_insns.h index 193f0b7..47db2e3 100644 --- a/bpf_insns.h +++ b/bpf_insns.h @@ -1,6 +1,10 @@ #ifndef BPF_INSNS_H #define BPF_INSNS_H +#ifndef BPF_MAXINSNS +# define BPF_MAXINSNS 4096 +#endif + #define BPF_CLASS(code) ((code) & 0x07) #define BPF_LD 0x00 #define BPF_LDX 0x01 diff --git a/bpf_parser.y b/bpf_parser.y index 19268ae..a101057 100644 --- a/bpf_parser.y +++ b/bpf_parser.y @@ -17,6 +17,7 @@ #include <stdint.h> #include <errno.h> #include <libgen.h> +#include <linux/filter.h> #include "bpf.h" #include "str.h" @@ -25,20 +26,17 @@ #include "built_in.h" #include "die.h" -#define MAX_INSTRUCTIONS 4096 - int compile_filter(char *file, int verbose, int bypass, int format, bool invoke_cpp); static int curr_instr = 0; -static struct sock_filter out[MAX_INSTRUCTIONS]; - -static char *labels[MAX_INSTRUCTIONS]; +static struct sock_filter out[BPF_MAXINSNS]; -static char *labels_jt[MAX_INSTRUCTIONS]; -static char *labels_jf[MAX_INSTRUCTIONS]; -static char *labels_k[MAX_INSTRUCTIONS]; +static char *labels[BPF_MAXINSNS]; +static char *labels_jt[BPF_MAXINSNS]; +static char *labels_jf[BPF_MAXINSNS]; +static char *labels_k[BPF_MAXINSNS]; #define YYERROR_VERBOSE 0 #define YYDEBUG 0 @@ -54,7 +52,7 @@ extern char *yytext; static inline void check_max_instr(void) { - if (curr_instr >= MAX_INSTRUCTIONS) + if (curr_instr >= BPF_MAXINSNS) panic("Exceeded maximal number of instructions!\n"); } |