summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pw/pw_group.c6
-rw-r--r--pw/pw_user.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/pw/pw_group.c b/pw/pw_group.c
index b20ce88..51166cd 100644
--- a/pw/pw_group.c
+++ b/pw/pw_group.c
@@ -68,7 +68,11 @@ pw_group(struct userconf * cnf, int mode, struct cargs * args)
};
if (a_gid != NULL) {
- if (strspn(a_gid->val, "0123456789") != strlen(a_gid->val))
+ const char *teststr;
+ teststr = a_gid->val;
+ if (*teststr == '-')
+ teststr++;
+ if (strspn(teststr, "0123456789") != strlen(teststr))
errx(EX_USAGE, "-g expects a number");
}
diff --git a/pw/pw_user.c b/pw/pw_user.c
index 483148a..f146b46 100644
--- a/pw/pw_user.c
+++ b/pw/pw_user.c
@@ -322,7 +322,10 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args)
a_name = NULL;
}
} else {
- if (strspn(a_uid->val, "0123456789") != strlen(a_uid->val))
+ const char *teststr = a_uid->val;
+ if (*teststr == '-')
+ teststr++;
+ if (strspn(teststr, "0123456789") != strlen(teststr))
errx(EX_USAGE, "-u expects a number");
}