diff options
author | Phil Sutter <phil@nwl.cc> | 2019-10-22 22:49:29 +0200 |
---|---|---|
committer | Phil Sutter <phil@nwl.cc> | 2019-10-30 10:00:57 +0100 |
commit | 45989e8fbec52fcbafa5ae9917fc2a0d62e3640d (patch) | |
tree | a39778ab0d5875aec2f2e2c6a4d3f465006f248f /iptables/xtables.c | |
parent | 8e502b02ef911cb8c05ea58acd7e2a4c397d1831 (diff) |
xshared: Share a common add_command() implementation
The shared definition of cmdflags is a super set of the previous one in
xtables-arp.c so while not being identical, they're compatible.
Avoid accidental array overstep in cmd2char() by incrementing an index
variable and checking its final value before using it as such.
Signed-off-by: Phil Sutter <phil@nwl.cc>
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'iptables/xtables.c')
-rw-r--r-- | iptables/xtables.c | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/iptables/xtables.c b/iptables/xtables.c index 8a9e0edc..6dfa3f11 100644 --- a/iptables/xtables.c +++ b/iptables/xtables.c @@ -51,8 +51,6 @@ #endif #define NUMBER_OF_CMD 16 -static const char cmdflags[] = { 'I', 'D', 'D', 'R', 'A', 'L', 'F', 'Z', - 'N', 'X', 'P', 'E', 'S', 'Z', 'C' }; #define OPT_FRAGMENT 0x00800U #define NUMBER_OF_OPT ARRAY_SIZE(optflags) @@ -319,27 +317,6 @@ opt2char(int option) return *ptr; } -static char -cmd2char(int option) -{ - const char *ptr; - for (ptr = cmdflags; option > 1; option >>= 1, ptr++); - - return *ptr; -} - -static void -add_command(unsigned int *cmd, const int newcmd, const int othercmds, - int invert) -{ - if (invert) - xtables_error(PARAMETER_PROBLEM, "unexpected ! flag"); - if (*cmd & (~othercmds)) - xtables_error(PARAMETER_PROBLEM, "Cannot use -%c with -%c\n", - cmd2char(newcmd), cmd2char(*cmd & (~othercmds))); - *cmd |= newcmd; -} - /* * All functions starting with "parse" should succeed, otherwise * the program fails. |