← Commit list

f05fd444e

Eric Andersen
Eric Andersen
2003-01-09
SOURCE BUG Duration: 2s

Subject

Fix addgroup so it actually works -Erik

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): sysdeps/linux/Config.in "fileutils/Config.in" dosyasini kaynak gosteriyor ama bu dosya repoda hic var olmadi (2002-12-05 - 2003-02-15 arasi orijinal yazar hatasi, 3238ea167 ile duzeltildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Debian 14.2.0-19) 14.2.0

—

Build Log

(log yok)

Commit Diff GitHub →

loginutils/addgroup.c+19 -9
@@ -132,23 +132,33 @@ static int addgroup(const char *filename, char *group, gid_t gid, const char *us
* ________________________________________________________________________ */
int addgroup_main(int argc, char **argv)
{
+ int opt;
char *group;
char *user;
gid_t gid = 0;
- if (argc < 2) {
- show_usage();
+ /* 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 (strncmp(argv[1], "-g", 2) == 0) {
- gid = strtol(argv[2], NULL, 10);
- group = argv[2];
+ if (optind < argc) {
+ group = argv[optind];
+ optind++;
} else {
show_usage();
}
-
- if (argc == 4) {
- user = argv[3];
+
+ if (optind < argc) {
+ user = argv[optind];
+ optind++;
} else {
user = "";
}
@@ -162,4 +172,4 @@ int addgroup_main(int argc, char **argv)
return addgroup(group_file, group, gid, user);
}
-/* $Id: addgroup.c,v 1.8 2002/12/13 22:02:12 timr Exp $ */
+/* $Id: addgroup.c,v 1.9 2003/01/09 18:53:53 andersen Exp $ */