summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extensions/libxt_devgroup.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/extensions/libxt_devgroup.c b/extensions/libxt_devgroup.c
index 69ae279d..4a69c822 100644
--- a/extensions/libxt_devgroup.c
+++ b/extensions/libxt_devgroup.c
@@ -46,14 +46,16 @@ static void devgroup_parse_groupspec(const char *arg, unsigned int *group,
unsigned int *mask)
{
char *end;
+ bool ok;
- *group = strtoul(arg, &end, 0);
- if (end != arg && (*end == '/' || *end == '\0')) {
+ ok = xtables_strtoui(arg, &end, group, 0, UINT32_MAX);
+ if (ok && (*end == '/' || *end == '\0')) {
if (*end == '/')
- *mask = strtoul(end + 1, &end, 0);
+ ok = xtables_strtoui(end + 1, NULL, mask,
+ 0, UINT32_MAX);
else
*mask = ~0U;
- if (*end != '\0' || end == arg)
+ if (!ok)
xtables_error(PARAMETER_PROBLEM,
"Bad group value \"%s\"", arg);
} else {