summaryrefslogtreecommitdiff
path: root/bpf_parser.y
diff options
context:
space:
mode:
authorDaniel Borkmann <dborkman@redhat.com>2013-06-15 20:57:47 +0200
committerDaniel Borkmann <dborkman@redhat.com>2013-06-15 20:57:47 +0200
commit1bb8cf17318a09ee55a99043703512ec37560b29 (patch)
tree2bcfd5795aeef5efec437f53483ea983e0688776 /bpf_parser.y
parentd9b5259582a6073d1c2bada8c3294c7550c7b678 (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>
Diffstat (limited to 'bpf_parser.y')
-rw-r--r--bpf_parser.y16
1 files changed, 7 insertions, 9 deletions
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");
}