]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
libxtables: Check extension real_name length
authorPhil Sutter <phil@nwl.cc>
Mon, 24 Sep 2018 17:25:21 +0000 (19:25 +0200)
committerFlorian Westphal <fw@strlen.de>
Tue, 25 Sep 2018 14:26:08 +0000 (16:26 +0200)
Just like with 'name', if given check 'real_name' to not exceed max length.

Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Florian Westphal <fw@strlen.de>
libxtables/xtables.c

index 6dd0b152dfecfae22a786231673c3380e9143b60..34a084f47c29041dcc5a6408d1562fc9f6dc91cc 100644 (file)
@@ -920,6 +920,12 @@ void xtables_register_match(struct xtables_match *me)
                exit(1);
        }
 
+       if (me->real_name && strlen(me->real_name) >= XT_EXTENSION_MAXNAMELEN) {
+               fprintf(stderr, "%s: match `%s' has invalid real name\n",
+                       xt_params->program_name, me->real_name);
+               exit(1);
+       }
+
        if (me->family >= NPROTO) {
                fprintf(stderr,
                        "%s: BUG: match %s has invalid protocol family\n",
@@ -1107,6 +1113,12 @@ void xtables_register_target(struct xtables_target *me)
                exit(1);
        }
 
+       if (me->real_name && strlen(me->real_name) >= XT_EXTENSION_MAXNAMELEN) {
+               fprintf(stderr, "%s: target `%s' has invalid real name\n",
+                       xt_params->program_name, me->real_name);
+               exit(1);
+       }
+
        if (me->family >= NPROTO) {
                fprintf(stderr,
                        "%s: BUG: target %s has invalid protocol family\n",