43 lines
1.1 KiB
Diff
43 lines
1.1 KiB
Diff
--- shadow-4.0.18.1.orig/src/useradd.c 2006-07-28 19:42:48.000000000 +0200
|
|
+++ shadow-4.0.18.1/src/useradd.c 2006-08-04 09:24:34.000000000 +0200
|
|
@@ -203,13 +203,17 @@
|
|
long gid;
|
|
char *errptr;
|
|
|
|
+ struct group* grp = getgrnam (grname);
|
|
+ if (grp)
|
|
+ return grp;
|
|
+
|
|
gid = strtol (grname, &errptr, 10);
|
|
if (*errptr || errno == ERANGE || gid < 0) {
|
|
fprintf (stderr,
|
|
_("%s: invalid numeric argument '%s'\n"), Prog, grname);
|
|
exit (E_BAD_ARG);
|
|
}
|
|
- return getgrnam (grname);
|
|
+ return getgrgid (gid);
|
|
}
|
|
|
|
static long get_number (const char *numstr)
|
|
--- shadow-4.0.18.1.orig/src/usermod.c 2006-07-28 19:42:48.000000000 +0200
|
|
+++ shadow-4.0.18.1/src/usermod.c 2006-08-04 09:24:21.000000000 +0200
|
|
@@ -165,13 +165,17 @@
|
|
long val;
|
|
char *errptr;
|
|
|
|
+ struct group* grp = getgrnam (grname);
|
|
+ if (grp)
|
|
+ return grp;
|
|
+
|
|
val = strtol (grname, &errptr, 10);
|
|
if (*errptr || errno == ERANGE || val < 0) {
|
|
fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), Prog,
|
|
grname);
|
|
exit (E_BAD_ARG);
|
|
}
|
|
- return getgrnam (grname);
|
|
+ return getgrgid (val);
|
|
}
|
|
|
|
/*
|