summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorJan Engelhardt <jengelh@medozas.de>2009-01-27 18:43:01 +0100
committerJan Engelhardt <jengelh@medozas.de>2009-01-27 23:14:30 +0100
commit5f2922cfc0bbfbeb878f5c12e9fb3eb602ae5507 (patch)
treed0fc6078218d3729279e0d47d3a766fcffdeab9d /extensions
parent39bf9c8214d3073a496a8a1eff91046a8d6fbbdf (diff)
libxtables: prefix/order - strtoui
This commit also throws out the redundant string_to_number_*. Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Diffstat (limited to 'extensions')
-rw-r--r--extensions/libip6t_HL.c2
-rw-r--r--extensions/libip6t_LOG.c2
-rw-r--r--extensions/libip6t_icmp6.c4
-rw-r--r--extensions/libip6t_mh.c2
-rw-r--r--extensions/libipt_CLUSTERIP.c6
-rw-r--r--extensions/libipt_ECN.c6
-rw-r--r--extensions/libipt_LOG.c2
-rw-r--r--extensions/libipt_NETMAP.c2
-rw-r--r--extensions/libipt_TTL.c2
-rw-r--r--extensions/libipt_ecn.c2
-rw-r--r--extensions/libipt_icmp.c4
-rw-r--r--extensions/libipt_ttl.c6
-rw-r--r--extensions/libxt_CONNMARK.c16
-rw-r--r--extensions/libxt_DSCP.c2
-rw-r--r--extensions/libxt_MARK.c20
-rw-r--r--extensions/libxt_NFQUEUE.c2
-rw-r--r--extensions/libxt_TCPMSS.c3
-rw-r--r--extensions/libxt_TCPOPTSTRIP.c3
-rw-r--r--extensions/libxt_TOS.c6
-rw-r--r--extensions/libxt_TPROXY.c6
-rw-r--r--extensions/libxt_connmark.c4
-rw-r--r--extensions/libxt_conntrack.c14
-rw-r--r--extensions/libxt_dccp.c2
-rw-r--r--extensions/libxt_dscp.c2
-rw-r--r--extensions/libxt_hashlimit.c24
-rw-r--r--extensions/libxt_length.c2
-rw-r--r--extensions/libxt_limit.c2
-rw-r--r--extensions/libxt_mark.c4
-rw-r--r--extensions/libxt_owner.c25
-rw-r--r--extensions/libxt_rateest.c7
-rw-r--r--extensions/libxt_statistic.c9
-rw-r--r--extensions/libxt_tcp.c2
-rw-r--r--extensions/libxt_tcpmss.c2
-rw-r--r--extensions/tos_values.c6
34 files changed, 108 insertions, 95 deletions
diff --git a/extensions/libip6t_HL.c b/extensions/libip6t_HL.c
index 8f555722..4aed4fd8 100644
--- a/extensions/libip6t_HL.c
+++ b/extensions/libip6t_HL.c
@@ -44,7 +44,7 @@ static int HL_parse(int c, char **argv, int invert, unsigned int *flags,
exit_error(PARAMETER_PROBLEM,
"HL: unexpected `!'");
- if (string_to_number(optarg, 0, UINT8_MAX, &value) == -1)
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"HL: Expected value between 0 and 255");
diff --git a/extensions/libip6t_LOG.c b/extensions/libip6t_LOG.c
index 1b21d5dd..a8ac1359 100644
--- a/extensions/libip6t_LOG.c
+++ b/extensions/libip6t_LOG.c
@@ -70,7 +70,7 @@ parse_level(const char *level)
unsigned int lev = -1;
unsigned int set = 0;
- if (string_to_number(level, 0, 7, &lev) == -1) {
+ if (!xtables_strtoui(level, NULL, &lev, 0, 7)) {
unsigned int i = 0;
for (i = 0;
diff --git a/extensions/libip6t_icmp6.c b/extensions/libip6t_icmp6.c
index 17567dfb..401c2780 100644
--- a/extensions/libip6t_icmp6.c
+++ b/extensions/libip6t_icmp6.c
@@ -123,12 +123,12 @@ parse_icmpv6(const char *icmpv6type, u_int8_t *type, u_int8_t code[])
if (slash)
*slash = '\0';
- if (string_to_number(buffer, 0, UINT8_MAX, &number) == -1)
+ if (!xtables_strtoui(buffer, NULL, &number, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"Invalid ICMPv6 type `%s'\n", buffer);
*type = number;
if (slash) {
- if (string_to_number(slash+1, 0, UINT8_MAX, &number) == -1)
+ if (!xtables_strtoui(slash+1, NULL, &number, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"Invalid ICMPv6 code `%s'\n",
slash+1);
diff --git a/extensions/libip6t_mh.c b/extensions/libip6t_mh.c
index 8b58bcdf..f8c4e247 100644
--- a/extensions/libip6t_mh.c
+++ b/extensions/libip6t_mh.c
@@ -93,7 +93,7 @@ static unsigned int name_to_type(const char *name)
} else {
unsigned int number;
- if (string_to_number(name, 0, UINT8_MAX, &number) == -1)
+ if (!xtables_strtoui(name, NULL, &number, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"Invalid MH type `%s'\n", name);
return number;
diff --git a/extensions/libipt_CLUSTERIP.c b/extensions/libipt_CLUSTERIP.c
index e93290ac..38909ea4 100644
--- a/extensions/libipt_CLUSTERIP.c
+++ b/extensions/libipt_CLUSTERIP.c
@@ -120,7 +120,7 @@ static int CLUSTERIP_parse(int c, char **argv, int invert, unsigned int *flags,
exit_error(PARAMETER_PROBLEM, "Can only specify node number combined with `--new'\n");
if (*flags & PARAM_TOTALNODE)
exit_error(PARAMETER_PROBLEM, "Can only specify total node number once\n");
- if (string_to_number(optarg, 1, CLUSTERIP_MAX_NODES, &num) < 0)
+ if (!xtables_strtoui(optarg, NULL, &num, 1, CLUSTERIP_MAX_NODES))
exit_error(PARAMETER_PROBLEM, "Unable to parse `%s'\n", optarg);
cipinfo->num_total_nodes = num;
*flags |= PARAM_TOTALNODE;
@@ -130,7 +130,7 @@ static int CLUSTERIP_parse(int c, char **argv, int invert, unsigned int *flags,
exit_error(PARAMETER_PROBLEM, "Can only specify node number combined with `--new'\n");
if (*flags & PARAM_LOCALNODE)
exit_error(PARAMETER_PROBLEM, "Can only specify local node number once\n");
- if (string_to_number(optarg, 1, CLUSTERIP_MAX_NODES, &num) < 0)
+ if (!xtables_strtoui(optarg, NULL, &num, 1, CLUSTERIP_MAX_NODES))
exit_error(PARAMETER_PROBLEM, "Unable to parse `%s'\n", optarg);
cipinfo->num_local_nodes = 1;
cipinfo->local_nodes[0] = num;
@@ -141,7 +141,7 @@ static int CLUSTERIP_parse(int c, char **argv, int invert, unsigned int *flags,
exit_error(PARAMETER_PROBLEM, "Can only specify hash init value combined with `--new'\n");
if (*flags & PARAM_HASHINIT)
exit_error(PARAMETER_PROBLEM, "Can specify hash init value only once\n");
- if (string_to_number(optarg, 0, UINT_MAX, &num) < 0)
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT_MAX))
exit_error(PARAMETER_PROBLEM, "Unable to parse `%s'\n", optarg);
cipinfo->hash_initval = num;
*flags |= PARAM_HASHINIT;
diff --git a/extensions/libipt_ECN.c b/extensions/libipt_ECN.c
index e9312f06..c4e8e34f 100644
--- a/extensions/libipt_ECN.c
+++ b/extensions/libipt_ECN.c
@@ -61,7 +61,7 @@ static int ECN_parse(int c, char **argv, int invert, unsigned int *flags,
if (*flags & IPT_ECN_OP_SET_CWR)
exit_error(PARAMETER_PROBLEM,
"ECN target: Only use --ecn-tcp-cwr ONCE!");
- if (string_to_number(optarg, 0, 1, &result))
+ if (!xtables_strtoui(optarg, NULL, &result, 0, 1))
exit_error(PARAMETER_PROBLEM,
"ECN target: Value out of range");
einfo->operation |= IPT_ECN_OP_SET_CWR;
@@ -72,7 +72,7 @@ static int ECN_parse(int c, char **argv, int invert, unsigned int *flags,
if (*flags & IPT_ECN_OP_SET_ECE)
exit_error(PARAMETER_PROBLEM,
"ECN target: Only use --ecn-tcp-ece ONCE!");
- if (string_to_number(optarg, 0, 1, &result))
+ if (!xtables_strtoui(optarg, NULL, &result, 0, 1))
exit_error(PARAMETER_PROBLEM,
"ECN target: Value out of range");
einfo->operation |= IPT_ECN_OP_SET_ECE;
@@ -83,7 +83,7 @@ static int ECN_parse(int c, char **argv, int invert, unsigned int *flags,
if (*flags & IPT_ECN_OP_SET_IP)
exit_error(PARAMETER_PROBLEM,
"ECN target: Only use --ecn-ip-ect ONCE!");
- if (string_to_number(optarg, 0, 3, &result))
+ if (!xtables_strtoui(optarg, NULL, &result, 0, 3))
exit_error(PARAMETER_PROBLEM,
"ECN target: Value out of range");
einfo->operation |= IPT_ECN_OP_SET_IP;
diff --git a/extensions/libipt_LOG.c b/extensions/libipt_LOG.c
index 2aee910f..aefb54a6 100644
--- a/extensions/libipt_LOG.c
+++ b/extensions/libipt_LOG.c
@@ -70,7 +70,7 @@ parse_level(const char *level)
unsigned int lev = -1;
unsigned int set = 0;
- if (string_to_number(level, 0, 7, &lev) == -1) {
+ if (!xtables_strtoui(level, NULL, &lev, 0, 7)) {
unsigned int i = 0;
for (i = 0;
diff --git a/extensions/libipt_NETMAP.c b/extensions/libipt_NETMAP.c
index f6c688df..d8f34ccd 100644
--- a/extensions/libipt_NETMAP.c
+++ b/extensions/libipt_NETMAP.c
@@ -89,7 +89,7 @@ parse_to(char *arg, struct ip_nat_range *range)
netmask = ip->s_addr;
}
else {
- if (string_to_number(slash+1, 0, 32, &bits) == -1)
+ if (!xtables_strtoui(slash+1, NULL, &bits, 0, 32))
exit_error(PARAMETER_PROBLEM, "Bad netmask `%s'\n",
slash+1);
netmask = bits2netmask(bits);
diff --git a/extensions/libipt_TTL.c b/extensions/libipt_TTL.c
index e124381e..6036161d 100644
--- a/extensions/libipt_TTL.c
+++ b/extensions/libipt_TTL.c
@@ -44,7 +44,7 @@ static int TTL_parse(int c, char **argv, int invert, unsigned int *flags,
exit_error(PARAMETER_PROBLEM,
"TTL: unexpected `!'");
- if (string_to_number(optarg, 0, UINT8_MAX, &value) == -1)
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"TTL: Expected value between 0 and 255");
diff --git a/extensions/libipt_ecn.c b/extensions/libipt_ecn.c
index 72353d5f..c2276e96 100644
--- a/extensions/libipt_ecn.c
+++ b/extensions/libipt_ecn.c
@@ -71,7 +71,7 @@ static int ecn_parse(int c, char **argv, int invert, unsigned int *flags,
einfo->invert |= IPT_ECN_OP_MATCH_IP;
*flags |= IPT_ECN_OP_MATCH_IP;
einfo->operation |= IPT_ECN_OP_MATCH_IP;
- if (string_to_number(optarg, 0, 3, &result))
+ if (!xtables_strtoui(optarg, NULL, &result, 0, 3))
exit_error(PARAMETER_PROBLEM,
"ECN match: Value out of range");
einfo->ip_ect = result;
diff --git a/extensions/libipt_icmp.c b/extensions/libipt_icmp.c
index 7aff9caa..de4c3387 100644
--- a/extensions/libipt_icmp.c
+++ b/extensions/libipt_icmp.c
@@ -147,12 +147,12 @@ parse_icmp(const char *icmptype, u_int8_t *type, u_int8_t code[])
if (slash)
*slash = '\0';
- if (string_to_number(buffer, 0, UINT8_MAX, &number) == -1)
+ if (!xtables_strtoui(buffer, NULL, &number, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"Invalid ICMP type `%s'\n", buffer);
*type = number;
if (slash) {
- if (string_to_number(slash+1, 0, UINT8_MAX, &number) == -1)
+ if (!xtables_strtoui(slash+1, NULL, &number, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"Invalid ICMP code `%s'\n",
slash+1);
diff --git a/extensions/libipt_ttl.c b/extensions/libipt_ttl.c
index a8455e1d..1fa7bd31 100644
--- a/extensions/libipt_ttl.c
+++ b/extensions/libipt_ttl.c
@@ -33,7 +33,7 @@ static int ttl_parse(int c, char **argv, int invert, unsigned int *flags,
switch (c) {
case '2':
- if (string_to_number(optarg, 0, UINT8_MAX, &value) == -1)
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"ttl: Expected value between 0 and 255");
@@ -46,7 +46,7 @@ static int ttl_parse(int c, char **argv, int invert, unsigned int *flags,
info->ttl = value;
break;
case '3':
- if (string_to_number(optarg, 0, UINT8_MAX, &value) == -1)
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"ttl: Expected value between 0 and 255");
@@ -58,7 +58,7 @@ static int ttl_parse(int c, char **argv, int invert, unsigned int *flags,
info->ttl = value;
break;
case '4':
- if (string_to_number(optarg, 0, UINT8_MAX, &value) == -1)
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"ttl: Expected value between 0 and 255");
diff --git a/extensions/libxt_CONNMARK.c b/extensions/libxt_CONNMARK.c
index d5d963d4..f979f282 100644
--- a/extensions/libxt_CONNMARK.c
+++ b/extensions/libxt_CONNMARK.c
@@ -159,10 +159,10 @@ static int connmark_tg_parse(int c, char **argv, int invert,
case '=': /* --set-xmark */
case '-': /* --set-mark */
param_act(P_ONE_ACTION, "CONNMARK", *flags & F_MARK);
- if (!strtonum(optarg, &end, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, &end, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "CONNMARK", "--set-xmark/--set-mark", optarg);
if (*end == '/')
- if (!strtonum(end + 1, &end, &mask, 0, UINT32_MAX))
+ if (!xtables_strtoui(end + 1, &end, &mask, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "CONNMARK", "--set-xmark/--set-mark", optarg);
if (*end != '\0')
param_act(P_BAD_VALUE, "CONNMARK", "--set-xmark/--set-mark", optarg);
@@ -176,7 +176,7 @@ static int connmark_tg_parse(int c, char **argv, int invert,
case '&': /* --and-mark */
param_act(P_ONE_ACTION, "CONNMARK", *flags & F_MARK);
- if (!strtonum(optarg, NULL, &mask, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &mask, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "CONNMARK", "--and-mark", optarg);
info->mode = XT_CONNMARK_SET;
info->ctmark = 0;
@@ -186,7 +186,7 @@ static int connmark_tg_parse(int c, char **argv, int invert,
case '|': /* --or-mark */
param_act(P_ONE_ACTION, "CONNMARK", *flags & F_MARK);
- if (!strtonum(optarg, NULL, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "CONNMARK", "--or-mark", optarg);
info->mode = XT_CONNMARK_SET;
info->ctmark = value;
@@ -196,7 +196,7 @@ static int connmark_tg_parse(int c, char **argv, int invert,
case '^': /* --xor-mark */
param_act(P_ONE_ACTION, "CONNMARK", *flags & F_MARK);
- if (!strtonum(optarg, NULL, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "CONNMARK", "--xor-mark", optarg);
info->mode = XT_CONNMARK_SET;
info->ctmark = value;
@@ -221,7 +221,7 @@ static int connmark_tg_parse(int c, char **argv, int invert,
exit_error(PARAMETER_PROBLEM, "CONNMARK: --save-mark "
"or --restore-mark is required for "
"--nfmask");
- if (!strtonum(optarg, NULL, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "CONNMARK", "--nfmask", optarg);
info->nfmask = value;
return true;
@@ -231,7 +231,7 @@ static int connmark_tg_parse(int c, char **argv, int invert,
exit_error(PARAMETER_PROBLEM, "CONNMARK: --save-mark "
"or --restore-mark is required for "
"--ctmask");
- if (!strtonum(optarg, NULL, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "CONNMARK", "--ctmask", optarg);
info->ctmask = value;
return true;
@@ -241,7 +241,7 @@ static int connmark_tg_parse(int c, char **argv, int invert,
exit_error(PARAMETER_PROBLEM, "CONNMARK: --save-mark "
"or --restore-mark is required for "
"--mask");
- if (!strtonum(optarg, NULL, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "CONNMARK", "--mask", optarg);
info->nfmask = info->ctmask = value;
return true;
diff --git a/extensions/libxt_DSCP.c b/extensions/libxt_DSCP.c
index 92a6de5b..aac8f9b0 100644
--- a/extensions/libxt_DSCP.c
+++ b/extensions/libxt_DSCP.c
@@ -48,7 +48,7 @@ parse_dscp(const char *s, struct xt_DSCP_info *dinfo)
{
unsigned int dscp;
- if (string_to_number(s, 0, UINT8_MAX, &dscp) == -1)
+ if (!xtables_strtoui(s, NULL, &dscp, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"Invalid dscp `%s'\n", s);
diff --git a/extensions/libxt_MARK.c b/extensions/libxt_MARK.c
index b02322b9..fd28196e 100644
--- a/extensions/libxt_MARK.c
+++ b/extensions/libxt_MARK.c
@@ -58,12 +58,13 @@ MARK_parse_v0(int c, char **argv, int invert, unsigned int *flags,
{
struct xt_mark_target_info *markinfo
= (struct xt_mark_target_info *)(*target)->data;
+ unsigned int mark = 0;
switch (c) {
case '1':
- if (string_to_number_l(optarg, 0, 0,
- &markinfo->mark))
+ if (!xtables_strtoui(optarg, NULL, &mark, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM, "Bad MARK value `%s'", optarg);
+ markinfo->mark = mark;
if (*flags)
exit_error(PARAMETER_PROBLEM,
"MARK target: Can't specify --set-mark twice");
@@ -96,6 +97,7 @@ MARK_parse_v1(int c, char **argv, int invert, unsigned int *flags,
{
struct xt_mark_target_info_v1 *markinfo
= (struct xt_mark_target_info_v1 *)(*target)->data;
+ unsigned int mark = 0;
switch (c) {
case '1':
@@ -111,9 +113,9 @@ MARK_parse_v1(int c, char **argv, int invert, unsigned int *flags,
return 0;
}
- if (string_to_number_l(optarg, 0, 0, &markinfo->mark))
+ if (!xtables_strtoui(optarg, NULL, &mark, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM, "Bad MARK value `%s'", optarg);
-
+ markinfo->mark = mark;
if (*flags)
exit_error(PARAMETER_PROBLEM,
"MARK target: Can't specify --set-mark twice");
@@ -134,10 +136,10 @@ static int mark_tg_parse(int c, char **argv, int invert, unsigned int *flags,
case '=': /* --set-mark */
param_act(P_ONE_ACTION, "MARK", *flags & F_MARK);
param_act(P_NO_INVERT, "MARK", "--set-xmark/--set-mark", invert);
- if (!strtonum(optarg, &end, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, &end, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "MARK", "--set-xmark/--set-mark", optarg);
if (*end == '/')
- if (!strtonum(end + 1, &end, &mask, 0, UINT32_MAX))
+ if (!xtables_strtoui(end + 1, &end, &mask, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "MARK", "--set-xmark/--set-mark", optarg);
if (*end != '\0')
param_act(P_BAD_VALUE, "MARK", "--set-xmark/--set-mark", optarg);
@@ -151,7 +153,7 @@ static int mark_tg_parse(int c, char **argv, int invert, unsigned int *flags,
case '&': /* --and-mark */
param_act(P_ONE_ACTION, "MARK", *flags & F_MARK);
param_act(P_NO_INVERT, "MARK", "--and-mark", invert);
- if (!strtonum(optarg, NULL, &mask, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &mask, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "MARK", "--and-mark", optarg);
info->mark = 0;
info->mask = ~mask;
@@ -160,7 +162,7 @@ static int mark_tg_parse(int c, char **argv, int invert, unsigned int *flags,
case '|': /* --or-mark */
param_act(P_ONE_ACTION, "MARK", *flags & F_MARK);
param_act(P_NO_INVERT, "MARK", "--or-mark", invert);
- if (!strtonum(optarg, NULL, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "MARK", "--or-mark", optarg);
info->mark = value;
info->mask = value;
@@ -169,7 +171,7 @@ static int mark_tg_parse(int c, char **argv, int invert, unsigned int *flags,
case '^': /* --xor-mark */
param_act(P_ONE_ACTION, "MARK", *flags & F_MARK);
param_act(P_NO_INVERT, "MARK", "--xor-mark", invert);
- if (!strtonum(optarg, NULL, &value, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "MARK", "--xor-mark", optarg);
info->mark = value;
info->mask = 0;
diff --git a/extensions/libxt_NFQUEUE.c b/extensions/libxt_NFQUEUE.c
index 1a58760b..1c0c23d8 100644
--- a/extensions/libxt_NFQUEUE.c
+++ b/extensions/libxt_NFQUEUE.c
@@ -33,7 +33,7 @@ parse_num(const char *s, struct xt_NFQ_info *tinfo)
{
unsigned int num;
- if (string_to_number(s, 0, UINT16_MAX, &num) == -1)
+ if (!xtables_strtoui(s, NULL, &num, 0, UINT16_MAX))
exit_error(PARAMETER_PROBLEM,
"Invalid queue number `%s'\n", s);
diff --git a/extensions/libxt_TCPMSS.c b/extensions/libxt_TCPMSS.c
index 9b62a56b..33fc71cd 100644
--- a/extensions/libxt_TCPMSS.c
+++ b/extensions/libxt_TCPMSS.c
@@ -55,7 +55,8 @@ static int __TCPMSS_parse(int c, char **argv, int invert, unsigned int *flags,
if (*flags)
exit_error(PARAMETER_PROBLEM,
"TCPMSS target: Only one option may be specified");
- if (string_to_number(optarg, 0, UINT16_MAX - hdrsize, &mssval) == -1)
+ if (!xtables_strtoui(optarg, NULL, &mssval,
+ 0, UINT16_MAX - hdrsize))
exit_error(PARAMETER_PROBLEM, "Bad TCPMSS value `%s'", optarg);
mssinfo->mss = mssval;
diff --git a/extensions/libxt_TCPOPTSTRIP.c b/extensions/libxt_TCPOPTSTRIP.c
index 7211288e..c053a8b1 100644
--- a/extensions/libxt_TCPOPTSTRIP.c
+++ b/extensions/libxt_TCPOPTSTRIP.c
@@ -82,7 +82,8 @@ static void parse_list(struct xt_tcpoptstrip_target_info *info, char *arg)
break;
}
- if (option == 0 && string_to_number(arg, 0, UINT8_MAX, &option) == -1)
+ if (option == 0 &&
+ !xtables_strtoui(arg, NULL, &option, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"Bad TCP option value \"%s\"", arg);
diff --git a/extensions/libxt_TOS.c b/extensions/libxt_TOS.c
index a04f7414..96eb4201 100644
--- a/extensions/libxt_TOS.c
+++ b/extensions/libxt_TOS.c
@@ -118,7 +118,7 @@ static int tos_tg_parse(int c, char **argv, int invert, unsigned int *flags,
case '&': /* --and-tos */
param_act(P_ONLY_ONCE, "TOS", "--and-tos", *flags & FLAG_TOS);
param_act(P_NO_INVERT, "TOS", "--and-tos", invert);
- if (!strtonum(optarg, NULL, &bits, 0, UINT8_MAX))
+ if (!xtables_strtoui(optarg, NULL, &bits, 0, UINT8_MAX))
param_act(P_BAD_VALUE, "TOS", "--and-tos", optarg);
info->tos_value = 0;
info->tos_mask = ~bits;
@@ -127,7 +127,7 @@ static int tos_tg_parse(int c, char **argv, int invert, unsigned int *flags,
case '|': /* --or-tos */
param_act(P_ONLY_ONCE, "TOS", "--or-tos", *flags & FLAG_TOS);
param_act(P_NO_INVERT, "TOS", "--or-tos", invert);
- if (!strtonum(optarg, NULL, &bits, 0, UINT8_MAX))
+ if (!xtables_strtoui(optarg, NULL, &bits, 0, UINT8_MAX))
param_act(P_BAD_VALUE, "TOS", "--or-tos", optarg);
info->tos_value = bits;
info->tos_mask = bits;
@@ -136,7 +136,7 @@ static int tos_tg_parse(int c, char **argv, int invert, unsigned int *flags,
case '^': /* --xor-tos */
param_act(P_ONLY_ONCE, "TOS", "--xor-tos", *flags & FLAG_TOS);
param_act(P_NO_INVERT, "TOS", "--xor-tos", invert);
- if (!strtonum(optarg, NULL, &bits, 0, UINT8_MAX))
+ if (!xtables_strtoui(optarg, NULL, &bits, 0, UINT8_MAX))
param_act(P_BAD_VALUE, "TOS", "--xor-tos", optarg);
info->tos_value = bits;
info->tos_mask = 0;
diff --git a/extensions/libxt_TPROXY.c b/extensions/libxt_TPROXY.c
index 41ca2436..6c5c6b7d 100644
--- a/extensions/libxt_TPROXY.c
+++ b/extensions/libxt_TPROXY.c
@@ -40,7 +40,7 @@ static void parse_tproxy_lport(const char *s, struct xt_tproxy_target_info *info
{
unsigned int lport;
- if (string_to_number(s, 0, UINT16_MAX, &lport) != -1)
+ if (xtables_strtoui(s, NULL, &lport, 0, UINT16_MAX))
info->lport = htons(lport);
else
param_act(P_BAD_VALUE, "TPROXY", "--on-port", s);
@@ -61,10 +61,10 @@ static void parse_tproxy_mark(char *s, struct xt_tproxy_target_info *info)
unsigned int value, mask = UINT32_MAX;
char *end;
- if (!strtonum(s, &end, &value, 0, UINT_MAX))
+ if (!xtables_strtoui(s, &end, &value, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "TPROXY", "--tproxy-mark", s);
if (*end == '/')
- if (!strtonum(end + 1, &end, &mask, 0, UINT_MAX))
+ if (!xtables_strtoui(end + 1, &end, &mask, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "TPROXY", "--tproxy-mark", s);
if (*end != '\0')
param_act(P_BAD_VALUE, "TPROXY", "--tproxy-mark", s);
diff --git a/extensions/libxt_connmark.c b/extensions/libxt_connmark.c
index fbd3e62c..afa63e39 100644
--- a/extensions/libxt_connmark.c
+++ b/extensions/libxt_connmark.c
@@ -55,10 +55,10 @@ connmark_mt_parse(int c, char **argv, int invert, unsigned int *flags,
switch (c) {
case '1': /* --mark */
param_act(P_ONLY_ONCE, "connmark", "--mark", *flags & F_MARK);
- if (!strtonum(optarg, &end, &mark, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, &end, &mark, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "connmark", "--mark", optarg);
if (*end == '/')
- if (!strtonum(end + 1, &end, &mask, 0, UINT32_MAX))
+ if (!xtables_strtoui(end + 1, &end, &mask, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "connmark", "--mark", optarg);
if (*end != '\0')
param_act(P_BAD_VALUE, "connmark", "--mark", optarg);
diff --git a/extensions/libxt_conntrack.c b/extensions/libxt_conntrack.c
index 532f5eee..2b98ab02 100644
--- a/extensions/libxt_conntrack.c
+++ b/extensions/libxt_conntrack.c
@@ -228,7 +228,7 @@ parse_expire(const char *s)
{
unsigned int len;
- if (string_to_number(s, 0, 0, &len) == -1)
+ if (!xtables_strtoui(s, NULL, &len, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM, "expire value invalid: `%s'\n", s);
else
return len;
@@ -268,11 +268,11 @@ conntrack_ps_expires(struct xt_conntrack_mtinfo1 *info, const char *s)
unsigned int min, max;
char *end;
- if (!strtonum(s, &end, &min, 0, ~0))
+ if (!xtables_strtoui(s, &end, &min, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "conntrack", "--expires", s);
max = min;
if (*end == ':')
- if (!strtonum(s, &end, &max, 0, UINT32_MAX))
+ if (!xtables_strtoui(s, &end, &max, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "conntrack", "--expires", s);
if (*end != '\0')
param_act(P_BAD_VALUE, "conntrack", "--expires", s);
@@ -481,7 +481,7 @@ conntrack_mt_parse(int c, char **argv, int invert, unsigned int *flags,
break;
case 'a': /* --ctorigsrcport */
- if (!strtonum(optarg, NULL, &port, 0, UINT16_MAX))
+ if (!xtables_strtoui(optarg, NULL, &port, 0, UINT16_MAX))
param_act(P_BAD_VALUE, "conntrack",
"--ctorigsrcport", optarg);
info->match_flags |= XT_CONNTRACK_ORIGSRC_PORT;
@@ -491,7 +491,7 @@ conntrack_mt_parse(int c, char **argv, int invert, unsigned int *flags,
break;
case 'b': /* --ctorigdstport */
- if (!strtonum(optarg, NULL, &port, 0, UINT16_MAX))
+ if (!xtables_strtoui(optarg, NULL, &port, 0, UINT16_MAX))
param_act(P_BAD_VALUE, "conntrack",
"--ctorigdstport", optarg);
info->match_flags |= XT_CONNTRACK_ORIGDST_PORT;
@@ -501,7 +501,7 @@ conntrack_mt_parse(int c, char **argv, int invert, unsigned int *flags,
break;
case 'c': /* --ctreplsrcport */
- if (!strtonum(optarg, NULL, &port, 0, UINT16_MAX))
+ if (!xtables_strtoui(optarg, NULL, &port, 0, UINT16_MAX))
param_act(P_BAD_VALUE, "conntrack",
"--ctreplsrcport", optarg);
info->match_flags |= XT_CONNTRACK_REPLSRC_PORT;
@@ -511,7 +511,7 @@ conntrack_mt_parse(int c, char **argv, int invert, unsigned int *flags,
break;
case 'd': /* --ctrepldstport */
- if (!strtonum(optarg, NULL, &port, 0, UINT16_MAX))
+ if (!xtables_strtoui(optarg, NULL, &port, 0, UINT16_MAX))
param_act(P_BAD_VALUE, "conntrack",
"--ctrepldstport", optarg);
info->match_flags |= XT_CONNTRACK_REPLDST_PORT;
diff --git a/extensions/libxt_dccp.c b/extensions/libxt_dccp.c
index 0eb95cef..b7b55e27 100644
--- a/extensions/libxt_dccp.c
+++ b/extensions/libxt_dccp.c
@@ -121,7 +121,7 @@ static u_int8_t parse_dccp_option(char *optstring)
{
unsigned int ret;
- if (string_to_number(optstring, 1, UINT8_MAX, &ret) == -1)
+ if (!xtables_strtoui(optstring, NULL, &ret, 1, UINT8_MAX))
exit_error(PARAMETER_PROBLEM, "Bad DCCP option `%s'",
optstring);
diff --git a/extensions/libxt_dscp.c b/extensions/libxt_dscp.c
index ae5a6248..fce14c26 100644
--- a/extensions/libxt_dscp.c
+++ b/extensions/libxt_dscp.c
@@ -48,7 +48,7 @@ parse_dscp(const char *s, struct xt_dscp_info *dinfo)
{
unsigned int dscp;
- if (string_to_number(s, 0, UINT8_MAX, &dscp) == -1)
+ if (!xtables_strtoui(s, NULL, &dscp, 0, UINT8_MAX))
exit_error(PARAMETER_PROBLEM,
"Invalid dscp `%s'\n", s);
diff --git a/extensions/libxt_hashlimit.c b/extensions/libxt_hashlimit.c
index 278e098e..06d026a2 100644
--- a/extensions/libxt_hashlimit.c
+++ b/extensions/libxt_hashlimit.c
@@ -230,7 +230,7 @@ hashlimit_parse(int c, char **argv, int invert, unsigned int *flags,
param_act(P_ONLY_ONCE, "hashlimit", "--hashlimit-burst",
*flags & PARAM_BURST);
if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;
- if (string_to_number(optarg, 0, 10000, &num) == -1)
+ if (!xtables_strtoui(optarg, NULL, &num, 0, 10000))
exit_error(PARAMETER_PROBLEM,
"bad --hashlimit-burst `%s'", optarg);
r->cfg.burst = num;
@@ -240,7 +240,7 @@ hashlimit_parse(int c, char **argv, int invert, unsigned int *flags,
param_act(P_ONLY_ONCE, "hashlimit", "--hashlimit-htable-size",
*flags & PARAM_SIZE);
if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;
- if (string_to_number(optarg, 0, UINT32_MAX, &num) == -1)
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM,
"bad --hashlimit-htable-size: `%s'", optarg);
r->cfg.size = num;
@@ -250,7 +250,7 @@ hashlimit_parse(int c, char **argv, int invert, unsigned int *flags,
param_act(P_ONLY_ONCE, "hashlimit", "--hashlimit-htable-max",
*flags & PARAM_MAX);
if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;
- if (string_to_number(optarg, 0, UINT32_MAX, &num) == -1)
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM,
"bad --hashlimit-htable-max: `%s'", optarg);
r->cfg.max = num;
@@ -261,7 +261,7 @@ hashlimit_parse(int c, char **argv, int invert, unsigned int *flags,
"--hashlimit-htable-gcinterval",
*flags & PARAM_GCINTERVAL);
if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;
- if (string_to_number(optarg, 0, UINT32_MAX, &num) == -1)
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM,
"bad --hashlimit-htable-gcinterval: `%s'",
optarg);
@@ -273,7 +273,7 @@ hashlimit_parse(int c, char **argv, int invert, unsigned int *flags,
param_act(P_ONLY_ONCE, "hashlimit",
"--hashlimit-htable-expire", *flags & PARAM_EXPIRE);
if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;
- if (string_to_number(optarg, 0, UINT32_MAX, &num) == -1)
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM,
"bad --hashlimit-htable-expire: `%s'", optarg);
/* FIXME: not HZ dependent */
@@ -341,7 +341,7 @@ hashlimit_mt_parse(struct xt_hashlimit_mtinfo1 *info, unsigned int *flags,
case '$': /* --hashlimit-burst */
param_act(P_ONLY_ONCE, "hashlimit", "--hashlimit-burst",
*flags & PARAM_BURST);
- if (!strtonum(optarg, NULL, &num, 0, 10000))
+ if (!xtables_strtoui(optarg, NULL, &num, 0, 10000))
param_act(P_BAD_VALUE, "hashlimit",
"--hashlimit-burst", optarg);
info->cfg.burst = num;
@@ -351,7 +351,7 @@ hashlimit_mt_parse(struct xt_hashlimit_mtinfo1 *info, unsigned int *flags,
case '&': /* --hashlimit-htable-size */
param_act(P_ONLY_ONCE, "hashlimit", "--hashlimit-htable-size",
*flags & PARAM_SIZE);
- if (!strtonum(optarg, NULL, &num, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "hashlimit",
"--hashlimit-htable-size", optarg);
info->cfg.size = num;
@@ -361,7 +361,7 @@ hashlimit_mt_parse(struct xt_hashlimit_mtinfo1 *info, unsigned int *flags,
case '*': /* --hashlimit-htable-max */
param_act(P_ONLY_ONCE, "hashlimit", "--hashlimit-htable-max",
*flags & PARAM_MAX);
- if (!strtonum(optarg, NULL, &num, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "hashlimit",
"--hashlimit-htable-max", optarg);
info->cfg.max = num;
@@ -372,7 +372,7 @@ hashlimit_mt_parse(struct xt_hashlimit_mtinfo1 *info, unsigned int *flags,
param_act(P_ONLY_ONCE, "hashlimit",
"--hashlimit-htable-gcinterval",
*flags & PARAM_GCINTERVAL);
- if (!strtonum(optarg, NULL, &num, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "hashlimit",
"--hashlimit-htable-gcinterval", optarg);
/* FIXME: not HZ dependent!! */
@@ -383,7 +383,7 @@ hashlimit_mt_parse(struct xt_hashlimit_mtinfo1 *info, unsigned int *flags,
case ')': /* --hashlimit-htable-expire */
param_act(P_ONLY_ONCE, "hashlimit",
"--hashlimit-htable-expire", *flags & PARAM_EXPIRE);
- if (!strtonum(optarg, NULL, &num, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, NULL, &num, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "hashlimit",
"--hashlimit-htable-expire", optarg);
/* FIXME: not HZ dependent */
@@ -413,7 +413,7 @@ hashlimit_mt_parse(struct xt_hashlimit_mtinfo1 *info, unsigned int *flags,
case '<': /* --hashlimit-srcmask */
param_act(P_ONLY_ONCE, "hashlimit", "--hashlimit-srcmask",
*flags & PARAM_SRCMASK);
- if (!strtonum(optarg, NULL, &num, 0, maxmask))
+ if (!xtables_strtoui(optarg, NULL, &num, 0, maxmask))
param_act(P_BAD_VALUE, "hashlimit",
"--hashlimit-srcmask", optarg);
info->cfg.srcmask = num;
@@ -423,7 +423,7 @@ hashlimit_mt_parse(struct xt_hashlimit_mtinfo1 *info, unsigned int *flags,
case '>': /* --hashlimit-dstmask */
param_act(P_ONLY_ONCE, "hashlimit", "--hashlimit-dstmask",
*flags & PARAM_DSTMASK);
- if (!strtonum(optarg, NULL, &num, 0, maxmask))
+ if (!xtables_strtoui(optarg, NULL, &num, 0, maxmask))
param_act(P_BAD_VALUE, "hashlimit",
"--hashlimit-dstmask", optarg);
info->cfg.dstmask = num;
diff --git a/extensions/libxt_length.c b/extensions/libxt_length.c
index 0e196d78..d039904b 100644
--- a/extensions/libxt_length.c
+++ b/extensions/libxt_length.c
@@ -26,7 +26,7 @@ parse_length(const char *s)
{
unsigned int len;
- if (string_to_number(s, 0, UINT16_MAX, &len) == -1)
+ if (!xtables_strtoui(s, NULL, &len, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM, "length invalid: `%s'\n", s);
else
return len;
diff --git a/extensions/libxt_limit.c b/extensions/libxt_limit.c
index 3ed7b965..1df9114e 100644
--- a/extensions/libxt_limit.c
+++ b/extensions/libxt_limit.c
@@ -102,7 +102,7 @@ limit_parse(int c, char **argv, int invert, unsigned int *flags,
case '$':
if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;
- if (string_to_number(optarg, 0, 10000, &num) == -1)
+ if (!xtables_strtoui(optarg, NULL, &num, 0, 10000))
exit_error(PARAMETER_PROBLEM,
"bad --limit-burst `%s'", optarg);
r->burst = num;
diff --git a/extensions/libxt_mark.c b/extensions/libxt_mark.c
index 5a95d519..31957e7d 100644
--- a/extensions/libxt_mark.c
+++ b/extensions/libxt_mark.c
@@ -35,10 +35,10 @@ static int mark_mt_parse(int c, char **argv, int invert, unsigned int *flags,
switch (c) {
case '1': /* --mark */
param_act(P_ONLY_ONCE, "mark", "--mark", *flags & F_MARK);
- if (!strtonum(optarg, &end, &mark, 0, UINT32_MAX))
+ if (!xtables_strtoui(optarg, &end, &mark, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "mark", "--mark", optarg);
if (*end == '/')
- if (!strtonum(end + 1, &end, &mask, 0, UINT32_MAX))
+ if (!xtables_strtoui(end + 1, &end, &mask, 0, UINT32_MAX))
param_act(P_BAD_VALUE, "mark", "--mark", optarg);
if (*end != '\0')
param_act(P_BAD_VALUE, "mark", "--mark", optarg);
diff --git a/extensions/libxt_owner.c b/extensions/libxt_owner.c
index c8677a8c..54d841c6 100644
--- a/extensions/libxt_owner.c
+++ b/extensions/libxt_owner.c
@@ -19,6 +19,11 @@
#include <linux/netfilter_ipv4/ipt_owner.h>
#include <linux/netfilter_ipv6/ip6t_owner.h>
+/*
+ * Note: "UINT32_MAX - 1" is used in the code because -1 is a reserved
+ * UID/GID value anyway.
+ */
+
enum {
FLAG_UID_OWNER = 1 << 0,
FLAG_GID_OWNER = 1 << 1,
@@ -110,7 +115,7 @@ owner_mt_parse_v0(int c, char **argv, int invert, unsigned int *flags,
param_act(P_ONLY_ONCE, "owner", "--uid-owner", *flags & FLAG_UID_OWNER);
if ((pwd = getpwnam(optarg)) != NULL)
id = pwd->pw_uid;
- else if (!strtonum(optarg, NULL, &id, 0, UINT32_MAX - 1))
+ else if (!xtables_strtoui(optarg, NULL, &id, 0, UINT32_MAX - 1))
param_act(P_BAD_VALUE, "owner", "--uid-owner", optarg);
if (invert)
info->invert |= IPT_OWNER_UID;
@@ -123,7 +128,7 @@ owner_mt_parse_v0(int c, char **argv, int invert, unsigned int *flags,
param_act(P_ONLY_ONCE, "owner", "--gid-owner", *flags & FLAG_GID_OWNER);
if ((grp = getgrnam(optarg)) != NULL)
id = grp->gr_gid;
- else if (!strtonum(optarg, NULL, &id, 0, UINT32_MAX - 1))
+ else if (!xtables_strtoui(optarg, NULL, &id, 0, UINT32_MAX - 1))
param_act(P_BAD_VALUE, "owner", "--gid-owner", optarg);
if (invert)
info->invert |= IPT_OWNER_GID;
@@ -134,7 +139,7 @@ owner_mt_parse_v0(int c, char **argv, int invert, unsigned int *flags,
case 'p':
param_act(P_ONLY_ONCE, "owner", "--pid-owner", *flags & FLAG_PID_OWNER);
- if (!strtonum(optarg, NULL, &id, 0, INT_MAX))
+ if (!xtables_strtoui(optarg, NULL, &id, 0, INT_MAX))
param_act(P_BAD_VALUE, "owner", "--pid-owner", optarg);
if (invert)
info->invert |= IPT_OWNER_PID;
@@ -145,7 +150,7 @@ owner_mt_parse_v0(int c, char **argv, int invert, unsigned int *flags,
case 's':
param_act(P_ONLY_ONCE, "owner", "--sid-owner", *flags & FLAG_SID_OWNER);
- if (!strtonum(optarg, NULL, &id, 0, INT_MAX))
+ if (!xtables_strtoui(optarg, NULL, &id, 0, INT_MAX))
param_act(P_BAD_VALUE, "owner", "--sid-value", optarg);
if (invert)
info->invert |= IPT_OWNER_SID;
@@ -190,7 +195,7 @@ owner_mt6_parse_v0(int c, char **argv, int invert, unsigned int *flags,
*flags & FLAG_UID_OWNER);
if ((pwd = getpwnam(optarg)) != NULL)
id = pwd->pw_uid;
- else if (!strtonum(optarg, NULL, &id, 0, UINT32_MAX - 1))
+ else if (!xtables_strtoui(optarg, NULL, &id, 0, UINT32_MAX - 1))
param_act(P_BAD_VALUE, "owner", "--uid-owner", optarg);
if (invert)
info->invert |= IP6T_OWNER_UID;
@@ -204,7 +209,7 @@ owner_mt6_parse_v0(int c, char **argv, int invert, unsigned int *flags,
*flags & FLAG_GID_OWNER);
if ((grp = getgrnam(optarg)) != NULL)
id = grp->gr_gid;
- else if (!strtonum(optarg, NULL, &id, 0, UINT32_MAX - 1))
+ else if (!xtables_strtoui(optarg, NULL, &id, 0, UINT32_MAX - 1))
param_act(P_BAD_VALUE, "owner", "--gid-owner", optarg);
if (invert)
info->invert |= IP6T_OWNER_GID;
@@ -216,7 +221,7 @@ owner_mt6_parse_v0(int c, char **argv, int invert, unsigned int *flags,
case 'p':
param_act(P_ONLY_ONCE, "owner", "--pid-owner",
*flags & FLAG_PID_OWNER);
- if (!strtonum(optarg, NULL, &id, 0, INT_MAX))
+ if (!xtables_strtoui(optarg, NULL, &id, 0, INT_MAX))
param_act(P_BAD_VALUE, "owner", "--pid-owner", optarg);
if (invert)
info->invert |= IP6T_OWNER_PID;
@@ -228,7 +233,7 @@ owner_mt6_parse_v0(int c, char **argv, int invert, unsigned int *flags,
case 's':
param_act(P_ONLY_ONCE, "owner", "--sid-owner",
*flags & FLAG_SID_OWNER);
- if (!strtonum(optarg, NULL, &id, 0, INT_MAX))
+ if (!xtables_strtoui(optarg, NULL, &id, 0, INT_MAX))
param_act(P_BAD_VALUE, "owner", "--sid-owner", optarg);
if (invert)
info->invert |= IP6T_OWNER_SID;
@@ -246,11 +251,11 @@ static void owner_parse_range(const char *s, unsigned int *from,
char *end;
/* -1 is reversed, so the max is one less than that. */
- if (!strtonum(s, &end, from, 0, UINT32_MAX - 1))
+ if (!xtables_strtoui(s, &end, from, 0, UINT32_MAX - 1))
param_act(P_BAD_VALUE, "owner", opt, s);
*to = *from;
if (*end == '-' || *end == ':')
- if (!strtonum(end + 1, &end, to, 0, UINT32_MAX - 1))
+ if (!xtables_strtoui(end + 1, &end, to, 0, UINT32_MAX - 1))
param_act(P_BAD_VALUE, "owner", opt, s);
if (*end != '\0')
param_act(P_BAD_VALUE, "owner", opt, s);
diff --git a/extensions/libxt_rateest.c b/extensions/libxt_rateest.c
index 333239d9..285b7ba3 100644
--- a/extensions/libxt_rateest.c
+++ b/extensions/libxt_rateest.c
@@ -112,6 +112,7 @@ rateest_parse(int c, char **argv, int invert, unsigned int *flags,
const void *entry, struct xt_entry_match **match)
{
struct xt_rateest_match_info *info = (void *)(*match)->data;
+ unsigned int val;
rateest_info = info;
@@ -186,10 +187,11 @@ rateest_parse(int c, char **argv, int invert, unsigned int *flags,
if (!argv[optind] || *argv[optind] == '-' || *argv[optind] == '!')
break;
- if (string_to_number(argv[optind], 0, 0, &info->pps1) < 0)
+ if (!xtables_strtoui(argv[optind], NULL, &val, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM,
"rateest: could not parse pps `%s'",
argv[optind]);
+ info->pps1 = val;
optind++;
break;
@@ -234,10 +236,11 @@ rateest_parse(int c, char **argv, int invert, unsigned int *flags,
if (!argv[optind] || *argv[optind] == '-' || *argv[optind] == '!')
break;
- if (string_to_number(argv[optind], 0, 0, &info->pps2) < 0)
+ if (!xtables_strtoui(argv[optind], NULL, &val, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM,
"rateest: could not parse pps `%s'",
argv[optind]);
+ info->pps2 = val;
optind++;
break;
diff --git a/extensions/libxt_statistic.c b/extensions/libxt_statistic.c
index e43de7d2..574f8f7d 100644
--- a/extensions/libxt_statistic.c
+++ b/extensions/libxt_statistic.c
@@ -40,6 +40,7 @@ statistic_parse(int c, char **argv, int invert, unsigned int *flags,
const void *entry, struct xt_entry_match **match)
{
struct xt_statistic_info *info = (void *)(*match)->data;
+ unsigned int val;
double prob;
if (invert)
@@ -70,10 +71,10 @@ statistic_parse(int c, char **argv, int invert, unsigned int *flags,
case '3':
if (*flags & 0x4)
exit_error(PARAMETER_PROBLEM, "double --every");
- if (string_to_number(optarg, 0, UINT32_MAX,
- &info->u.nth.every) == -1)
+ if (!xtables_strtoui(optarg, NULL, &val, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM,
"cannot parse --every `%s'", optarg);
+ info->u.nth.every = val;
if (info->u.nth.every == 0)
exit_error(PARAMETER_PROBLEM, "--every cannot be 0");
info->u.nth.every--;
@@ -82,10 +83,10 @@ statistic_parse(int c, char **argv, int invert, unsigned int *flags,
case '4':
if (*flags & 0x8)
exit_error(PARAMETER_PROBLEM, "double --packet");
- if (string_to_number(optarg, 0, UINT32_MAX,
- &info->u.nth.packet) == -1)
+ if (!xtables_strtoui(optarg, NULL, &val, 0, UINT32_MAX))
exit_error(PARAMETER_PROBLEM,
"cannot parse --packet `%s'", optarg);
+ info->u.nth.packet = val;
*flags |= 0x8;
break;
default:
diff --git a/extensions/libxt_tcp.c b/extensions/libxt_tcp.c
index 82954a4e..56bdba5d 100644
--- a/extensions/libxt_tcp.c
+++ b/extensions/libxt_tcp.c
@@ -121,7 +121,7 @@ parse_tcp_option(const char *option, u_int8_t *result)
{
unsigned int ret;
- if (string_to_number(option, 1, UINT8_MAX, &ret) == -1)
+ if (!xtables_strtoui(option, NULL, &ret, 1, UINT8_MAX))
exit_error(PARAMETER_PROBLEM, "Bad TCP option `%s'", option);
*result = ret;
diff --git a/extensions/libxt_tcpmss.c b/extensions/libxt_tcpmss.c
index e64a1b33..d30aa249 100644
--- a/extensions/libxt_tcpmss.c
+++ b/extensions/libxt_tcpmss.c
@@ -26,7 +26,7 @@ parse_tcp_mssvalue(const char *mssvalue)
{
unsigned int mssvaluenum;
- if (string_to_number(mssvalue, 0, UINT16_MAX, &mssvaluenum) != -1)
+ if (!xtables_strtoui(mssvalue, NULL, &mssvaluenum, 0, UINT16_MAX))
return mssvaluenum;
exit_error(PARAMETER_PROBLEM,
diff --git a/extensions/tos_values.c b/extensions/tos_values.c
index 2d5b4312..81f6de1c 100644
--- a/extensions/tos_values.c
+++ b/extensions/tos_values.c
@@ -34,14 +34,14 @@ static bool tos_parse_numeric(const char *str, struct tos_value_mask *tvm,
unsigned int value;
char *end;
- strtonum(str, &end, &value, 0, max);
+ xtables_strtoui(str, &end, &value, 0, max);
tvm->value = value;
tvm->mask = max;
if (*end == '/') {
const char *p = end + 1;
- if (!strtonum(p, &end, &value, 0, max))
+ if (!xtables_strtoui(p, &end, &value, 0, max))
exit_error(PARAMETER_PROBLEM, "Illegal value: \"%s\"",
str);
tvm->mask = value;
@@ -59,7 +59,7 @@ static bool tos_parse_symbolic(const char *str, struct tos_value_mask *tvm,
const struct tos_symbol_info *symbol;
char *tmp;
- if (strtonum(str, &tmp, NULL, 0, max))
+ if (xtables_strtoui(str, &tmp, NULL, 0, max))
return tos_parse_numeric(str, tvm, max);
/* Do not consider ECN bits */