summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/ipset.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/ipset.c b/lib/ipset.c
index 8633491..8ae2b6f 100644
--- a/lib/ipset.c
+++ b/lib/ipset.c
@@ -949,6 +949,11 @@ ipset_parse_argv(struct ipset *ipset, int oargc, char *oargv[])
int argc = oargc;
char *argv[MAX_ARGS] = {};
+ if (argc > MAX_ARGS)
+ return ipset->custom_error(ipset,
+ p, IPSET_PARAMETER_PROBLEM,
+ "Line is too long to parse.");
+
/* We need a local copy because of ipset_shift_argv */
memcpy(argv, oargv, sizeof(char *) * argc);