aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-11-14 11:10:14 +0000
committerEric Andersen <andersen@codepoet.org>2002-11-14 11:10:14 +0000
commit09eb000d7a21854e395c547420e02bd21e887042 (patch)
treec7a00320e68abdd42dea5482a12294bf15113320
parentf870148a04dae35458c29f78ff082bf573ee8bcb (diff)
downloadbusybox-09eb000d7a21854e395c547420e02bd21e887042.tar.gz
Patch from Marcel Hamer to fix addgroup argument parsing
-rw-r--r--loginutils/addgroup.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/loginutils/addgroup.c b/loginutils/addgroup.c
index 7878a387b..f4c024516 100644
--- a/loginutils/addgroup.c
+++ b/loginutils/addgroup.c
@@ -132,27 +132,20 @@ static int addgroup(const char *filename, char *group, gid_t gid)
* ________________________________________________________________________ */
int addgroup_main(int argc, char **argv)
{
- int opt;
char *group;
gid_t gid = 0;
- /* get remaining args */
- while ((opt = getopt (argc, argv, "g:")) != -1)
- switch (opt) {
- case 'g':
- gid = strtol(optarg, NULL, 10);
- break;
- default:
- show_usage();
- break;
- }
-
- if (optind >= argc) {
+ if (argc < 2) {
show_usage();
- } else {
- group = argv[optind];
}
+ if (strncmp(argv[1], "-g", 2) == 0) {
+ gid = strtol(argv[2], NULL, 10);
+ group = argv[2];
+ } else {
+ show_usage();
+ }
+
if (geteuid() != 0) {
error_msg_and_die
("Only root may add a group to the system.");
@@ -162,4 +155,4 @@ int addgroup_main(int argc, char **argv)
return addgroup(group_file, group, gid);
}
-/* $Id: addgroup.c,v 1.5 2002/08/06 20:39:23 mjn3 Exp $ */
+/* $Id: addgroup.c,v 1.6 2002/11/14 11:10:14 andersen Exp $ */