* src/groupmod.c: The ID argument of audit_logger is an unsigned
int. Use AUDIT_NO_ID instead of -1. * src/groupmod.c: Use a %lu format and cast group and user IDs to unsigned long integers. * src/groupmod.c: Cast the parsed GID/UID to a gid_t/uid_t.
This commit is contained in:
parent
936bd6a191
commit
c3a380ade8
@ -1,3 +1,11 @@
|
|||||||
|
2008-06-13 Nicolas François <nicolas.francois@centraliens.net>
|
||||||
|
|
||||||
|
* src/groupmod.c: The ID argument of audit_logger is an unsigned
|
||||||
|
int. Use AUDIT_NO_ID instead of -1.
|
||||||
|
* src/groupmod.c: Use a %lu format and cast group and user IDs to
|
||||||
|
unsigned long integers.
|
||||||
|
* src/groupmod.c: Cast the parsed GID/UID to a gid_t/uid_t.
|
||||||
|
|
||||||
2008-06-13 Nicolas François <nicolas.francois@centraliens.net>
|
2008-06-13 Nicolas François <nicolas.francois@centraliens.net>
|
||||||
|
|
||||||
* src/useradd.c: The ID argument of audit_logger is an unsigned
|
* src/useradd.c: The ID argument of audit_logger is an unsigned
|
||||||
|
@ -196,8 +196,9 @@ static void grp_update (void)
|
|||||||
_("%s: %s not found in /etc/group\n"),
|
_("%s: %s not found in /etc/group\n"),
|
||||||
Prog, group_name);
|
Prog, group_name);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "modifying group",
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
group_name, -1, 0);
|
"modifying group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_GRP_UPDATE);
|
fail_exit (E_GRP_UPDATE);
|
||||||
}
|
}
|
||||||
@ -226,16 +227,18 @@ static void grp_update (void)
|
|||||||
if (gr_update (&grp) == 0) {
|
if (gr_update (&grp) == 0) {
|
||||||
fprintf (stderr, _("%s: error adding new group entry\n"), Prog);
|
fprintf (stderr, _("%s: error adding new group entry\n"), Prog);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "adding group",
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
group_name, -1, 0);
|
"adding group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_GRP_UPDATE);
|
fail_exit (E_GRP_UPDATE);
|
||||||
}
|
}
|
||||||
if (nflg && (gr_remove (group_name) == 0)) {
|
if (nflg && (gr_remove (group_name) == 0)) {
|
||||||
fprintf (stderr, _("%s: error removing group entry\n"), Prog);
|
fprintf (stderr, _("%s: error removing group entry\n"), Prog);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "deleting group",
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
group_name, -1, 0);
|
"deleting group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_GRP_UPDATE);
|
fail_exit (E_GRP_UPDATE);
|
||||||
}
|
}
|
||||||
@ -255,16 +258,18 @@ static void grp_update (void)
|
|||||||
if (is_shadow_grp && (sgr_update (&sgrp) == 0)) {
|
if (is_shadow_grp && (sgr_update (&sgrp) == 0)) {
|
||||||
fprintf (stderr, _("%s: error adding new group entry\n"), Prog);
|
fprintf (stderr, _("%s: error adding new group entry\n"), Prog);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "adding group",
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
group_name, -1, 0);
|
"adding group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_GRP_UPDATE);
|
fail_exit (E_GRP_UPDATE);
|
||||||
}
|
}
|
||||||
if (is_shadow_grp && nflg && (sgr_remove (group_name) == 0)) {
|
if (is_shadow_grp && nflg && (sgr_remove (group_name) == 0)) {
|
||||||
fprintf (stderr, _("%s: error removing group entry\n"), Prog);
|
fprintf (stderr, _("%s: error removing group entry\n"), Prog);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "deleting group",
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
group_name, -1, 0);
|
"deleting group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_GRP_UPDATE);
|
fail_exit (E_GRP_UPDATE);
|
||||||
}
|
}
|
||||||
@ -272,8 +277,9 @@ static void grp_update (void)
|
|||||||
#endif /* SHADOWGRP */
|
#endif /* SHADOWGRP */
|
||||||
|
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "modifing group", group_name,
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
group_id, 1);
|
"modifing group",
|
||||||
|
group_name, (unsigned int) group_id, 1);
|
||||||
#endif
|
#endif
|
||||||
if (nflg) {
|
if (nflg) {
|
||||||
SYSLOG ((LOG_INFO, "change group `%s' to `%s'",
|
SYSLOG ((LOG_INFO, "change group `%s' to `%s'",
|
||||||
@ -281,8 +287,9 @@ static void grp_update (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gflg) {
|
if (gflg) {
|
||||||
SYSLOG ((LOG_INFO, "change GID for `%s' to %u",
|
SYSLOG ((LOG_INFO, "change GID for `%s' to %lu",
|
||||||
nflg ? group_newname : group_name, group_newid));
|
nflg ? group_newname : group_name,
|
||||||
|
(unsigned long) group_newid));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,8 +322,9 @@ static void check_new_gid (void)
|
|||||||
fprintf (stderr, _("%s: %lu is not a unique GID\n"),
|
fprintf (stderr, _("%s: %lu is not a unique GID\n"),
|
||||||
Prog, (unsigned long int) group_newid);
|
Prog, (unsigned long int) group_newid);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "modify gid", NULL,
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
group_newid, 0);
|
"modify gid",
|
||||||
|
NULL, (unsigned int) group_newid, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_GID_IN_USE);
|
fail_exit (E_GID_IN_USE);
|
||||||
}
|
}
|
||||||
@ -349,7 +357,8 @@ static void check_new_name (void)
|
|||||||
group_newname);
|
group_newname);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
"modifying group", group_name, -1, 0);
|
"modifying group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_NAME_IN_USE);
|
fail_exit (E_NAME_IN_USE);
|
||||||
}
|
}
|
||||||
@ -363,8 +372,9 @@ static void check_new_name (void)
|
|||||||
fprintf (stderr, _("%s: %s is not a valid group name\n"),
|
fprintf (stderr, _("%s: %s is not a valid group name\n"),
|
||||||
Prog, group_newname);
|
Prog, group_newname);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "modifying group", group_name,
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
-1, 0);
|
"modifying group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_BAD_ARG);
|
fail_exit (E_BAD_ARG);
|
||||||
}
|
}
|
||||||
@ -377,13 +387,13 @@ static gid_t get_gid (const char *gidstr)
|
|||||||
long val;
|
long val;
|
||||||
char *errptr;
|
char *errptr;
|
||||||
|
|
||||||
val = strtol (gidstr, &errptr, 10);
|
val = strtol (gidstr, &errptr, 10); /* FIXME: Should be strtoul ? */
|
||||||
if (('\0' != *errptr) || (ERANGE == errno) || (val < 0)) {
|
if (('\0' != *errptr) || (ERANGE == errno) || (val < 0)) {
|
||||||
fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), Prog,
|
fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), Prog,
|
||||||
gidstr);
|
gidstr);
|
||||||
fail_exit (E_BAD_ARG);
|
fail_exit (E_BAD_ARG);
|
||||||
}
|
}
|
||||||
return val;
|
return (gid_t) val;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -415,9 +425,9 @@ static void process_flags (int argc, char **argv)
|
|||||||
gflg = true;
|
gflg = true;
|
||||||
group_newid = get_gid (optarg);
|
group_newid = get_gid (optarg);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK,
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
Prog, "modifying group",
|
"modifying group",
|
||||||
NULL, group_newid, 0);
|
NULL, (unsigned int) group_newid, 0);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
@ -546,16 +556,20 @@ void update_primary_groups (gid_t ogid, gid_t ngid)
|
|||||||
lpwd = pw_locate (pwd->pw_name);
|
lpwd = pw_locate (pwd->pw_name);
|
||||||
if (NULL == lpwd) {
|
if (NULL == lpwd) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: cannot change the primary group of user '%s' from %u to %u, since it is not in the passwd file.\n"),
|
_("%s: cannot change the primary group of user '%s' from %lu to %lu, since it is not in the passwd file.\n"),
|
||||||
Prog, pwd->pw_name, ogid, ngid);
|
Prog, pwd->pw_name,
|
||||||
|
(unsigned long) ogid,
|
||||||
|
(unsigned long) ngid);
|
||||||
fail_exit (E_GRP_UPDATE);
|
fail_exit (E_GRP_UPDATE);
|
||||||
} else {
|
} else {
|
||||||
npwd = *lpwd;
|
npwd = *lpwd;
|
||||||
npwd.pw_gid = ngid;
|
npwd.pw_gid = ngid;
|
||||||
if (pw_update (&npwd) == 0) {
|
if (pw_update (&npwd) == 0) {
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
_("%s: cannot change the primary group of user '%s' from %u to %u.\n"),
|
_("%s: cannot change the primary group of user '%s' from %lu to %lu.\n"),
|
||||||
Prog, pwd->pw_name, ogid, ngid);
|
Prog, pwd->pw_name,
|
||||||
|
(unsigned long) ogid,
|
||||||
|
(unsigned long) ngid);
|
||||||
fail_exit (E_GRP_UPDATE);
|
fail_exit (E_GRP_UPDATE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -650,7 +664,8 @@ int main (int argc, char **argv)
|
|||||||
Prog, group_name);
|
Prog, group_name);
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
"modifying group", group_name, -1, 0);
|
"modifying group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
fail_exit (E_NOTFOUND);
|
fail_exit (E_NOTFOUND);
|
||||||
} else {
|
} else {
|
||||||
@ -680,8 +695,9 @@ int main (int argc, char **argv)
|
|||||||
Prog, group_name);
|
Prog, group_name);
|
||||||
|
|
||||||
#ifdef WITH_AUDIT
|
#ifdef WITH_AUDIT
|
||||||
audit_logger (AUDIT_USER_CHAUTHTOK, Prog, "modifying group",
|
audit_logger (AUDIT_USER_CHAUTHTOK, Prog,
|
||||||
group_name, -1, 0);
|
"modifying group",
|
||||||
|
group_name, AUDIT_NO_ID, 0);
|
||||||
#endif
|
#endif
|
||||||
if (!yp_get_default_domain (&nis_domain) &&
|
if (!yp_get_default_domain (&nis_domain) &&
|
||||||
!yp_master (nis_domain, "group.byname", &nis_master)) {
|
!yp_master (nis_domain, "group.byname", &nis_master)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user