nekral-guest [Thu, 7 Aug 2008 08:01:44 +0000 (08:01 +0000)]
* src/chfn.c: Added fail_exit(). Check if the passwd file is
locked. Report failures to unlock to stderr and syslog.
* src/chfn.c: Is case of failure, use fail_exit() rather than
exit().
* src/chfn.c: Ignore the return value of pam_end().
nekral-guest [Wed, 6 Aug 2008 15:57:31 +0000 (15:57 +0000)]
* lib/groupio.c, lib/groupio.h, lib/pwio.c, lib/pwio.h,
lib/sgroupio.c, lib/sgroupio.h, lib/shadowio.c, lib/shadowio.h:
Added *_dbname() functions to retrieve the name of the databases.
* lib/groupio.c, lib/groupio.h, lib/pwio.c, lib/pwio.h,
lib/sgroupio.c, lib/sgroupio.h, lib/shadowio.c, lib/shadowio.h:
*_name() functions renamed *setname().
* src/grpck.c, src/pwck.c: Likewise.
* lib/groupio.h, lib/pwio.h, lib/sgroupio.h, lib/shadowio.h: Added
the name of the arguments to the prototypes.
* src/chage, src/chfn.c, src/chgpasswd.c, src/chpasswd.c,
src/chsh.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c,
src/groupmod.c, src/grpck.c, src/grpconv.c, src/grpunconv.c,
src/newusers.c, src/passwd.c, src/pwck.c, src/pwconv.c,
src/pwunconv.c, src/useradd.c, src/userdel.c, src/usermod.c:
Harmonize the erro & syslog messages in case of failure of the
*_lock(), *_open(), *_close(), *_unlock(), *_remove() functions.
* src/chgpasswd.c, src/chpasswd.c, src/usermod.c: Avoid
capitalized messages.
* src/chpasswd.c, src/useradd.c, src/usermod.c: Harmonize messages
in case of inexistent entries.
* src/usermod.c: Harmonize messages in case of already existing
entries.
* src/newusers.c, src/useradd.c: Simplify PAM error handling.
* src/useradd.c: Report failures to unlock files (stderr, syslog,
and audit). But do not fail (continue).
* src/useradd.c (open_files): Do not report to syslog & audit
failures to lock or open the databases. This might be harmless,
and the logs were not already informed that a change was
requested.
* src/usermod.c: It's not the account which is unlocked, but its
password.
nekral-guest [Wed, 6 Aug 2008 15:56:51 +0000 (15:56 +0000)]
* src/groupadd.c: Only call gr_unlock() and sgr_unlock() in the
group or gshadow files were previously locked.
* src/groupadd.c: Make sure failures are reported to syslog/audit
after the change is mentioned.
* src/groupmod.c: Add logging to syslog & audit on lock/unlock
failures.
* src/groupmod.c: Make sure issues are reported to syslog or audit
after the change is mentioned.
* src/groupdel.c: Only call gr_unlock() and sgr_unlock() in the
group or gshadow files were previously locked.
* src/groupdel.c: Simplify the handling of PAM errors.
nekral-guest [Wed, 6 Aug 2008 15:51:52 +0000 (15:51 +0000)]
* src/chfn.c, src/chsh.c, src/groupdel.c, src/groupmems.c,
src/groupmod.c, src/grpck.c, src/login.c, src/logoutd.c,
src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c,
src/suauth.c, src/useradd.c, src/userdel.c, src/usermod.c,
src/vipw.c: Complete the switch from the `' quotation style to ''.
Do it also in SYSLOG messages. Quote some parameters. All this
permits to merge some messages.
* NEWS, src/groupmems.c: Allow everybody to list the users of a group.
This information is publicly available in /etc/group.
* NEWS, src/groupmems.c: Open /etc/group read only for the -l option.
* src/groupmems.c: Add functions process_flags() and check_perms()
from code of main().
* src/groupmems.c: Harmonize the failure message in case of PAM
failure with the other programs.
* src/groupmems.c: Reuse the functions from libmisc/list.c to deal
with user lists. addtogroup() was broken when realloc() move the
memory area.
* src/groupmems.c: Report failures with the name of the program.
2008-07-26 Nicolas François <nicolas.francois@centraliens.net>
* src/groupmems.c: Added Prog global variable to indicate the name
of the program in error messages.
2008-07-22 Lukáš Kuklínek <lkukline@redhat.com>
* NEWS, src/groupmems.c: Check if the user added to group actually
exist. RedHat bug #455603
* NEWS, src/groupmems.c: Check if the group exists in the group
local database (/etc/group). RedHat bug #456088
* src/chage.c: Ignore the return value of pam_end() before exiting.
* src/chage.c: Ignore return values of strftime(), snprintf(),
puts(), printf(), and fputs().
* src/chage.c: Check the return value of asctime().
* src/usermod.c: Do not call usr_update() if it will have no
effects. This avoid checking if the user exists in the local passwd
file if not necessary, and thus allow to add LDAP users to local
groups. (The user is already checked against the system
configuration with getpwnam()). Thanks to Dan Kopecek.
* src/usermod.c: Split update_files() into update_lastlog() and
update_faillog(). Report errors (but don't fail) if the file
exist, but open(), lseek(), read(), write(), or close() fails.
* src/usermod.c: Add brackets and parenthesis.
* src/usermod.c: Ignore the return value of pam_end() before
exiting.
* src/usermod.c: Ignore the return value of strftime(),
snprintf(), and puts().
* src/usermod.c: Check the return value of gmtime() and asctime(),
and output the raw time_t on failures.
nekral-guest [Tue, 17 Jun 2008 21:58:46 +0000 (21:58 +0000)]
* libmisc/env.c: Avoid implicit conversion of pointers / chars to
booleans.
* libmisc/env.c: Add brackets and parenthesis.
* libmisc/env.c: Ignore the return value of puts() and fputs().
* libmisc/env.c: Avoid multi-statements lines.
nekral-guest [Tue, 17 Jun 2008 21:13:30 +0000 (21:13 +0000)]
* libmisc/utmp.c: Avoid implicit conversion of pointers / chars to
booleans.
* libmisc/utmp.c: Add brackets and parenthesis.
* libmisc/utmp.c: Exit with the EXIT_FAILURE status code in case
of failure.
* libmisc/utmp.c: Avoid assignments in comparisons.
* lib/prototypes.h, libmisc/utmp.c: Change setutmp()'s prototype
to return an int because pututline() and pututxline() may fail.
nekral-guest [Sun, 15 Jun 2008 22:25:51 +0000 (22:25 +0000)]
* src/useradd.c: If the faillog file exist, warn in case of
failure when open(), lssek(), write() or close() fails when the
new user's faillog entry is reset.
* src/useradd.c: Ditto for the lastlog entry.
nekral-guest [Sun, 15 Jun 2008 21:59:41 +0000 (21:59 +0000)]
* libmisc/limits.c: Add brackets and parenthesis.
* libmisc/limits.c: Avoid implicit conversion of pointers /
integers to booleans.
* libmisc/limits.c: Ignore the return value of umask(). We will
never return to the original umask.
* libmisc/limits.c: Avoid multi-statements lines.
* libmisc/limits.c: Added default to a switch(). Report invalid
limit strings to syslog.
* libmisc/limits.c: Ignore the return value of fclose().
/etc/limits is open read-only.
* libmisc/limits.c: Ignore the return value of fputs() and
sleep().
* libmisc/limits.c: Check the return value of nice() and
set_filesize_limit(), and report errors to syslog.
* libmisc/ulimit.c, lib/prototypes.h: Return failures of
set_filesize_limit(). Change the prototype to return an int
instead of void.
nekral-guest [Sun, 15 Jun 2008 19:15:15 +0000 (19:15 +0000)]
* libmisc/log.c: Check return values. If lseek() failed, avoid
reading or writing at an unspecified location. Log to syslog in
case of failure.
* libmisc/log.c: Use the right casts.
nekral-guest [Sun, 15 Jun 2008 18:33:52 +0000 (18:33 +0000)]
* libmisc/find_new_ids.c, libmisc/find_new_gid.c,
libmisc/find_new_uid.c, libmisc/Makefile.am, lib/prototypes.h:
Split find_new_ids.c into find_new_gid.c and find_new_uid.c to
ease the description of login.defs variables in the different
tools.
nekral-guest [Sun, 15 Jun 2008 00:01:46 +0000 (00:01 +0000)]
* libmisc/failure.c: Ignore the return value of strftime() and
printf().
* libmisc/failure.c: Fix syslog call. The UID is not available.
User the username specified in the utmp/utmpx entry.
nekral-guest [Sat, 14 Jun 2008 23:41:38 +0000 (23:41 +0000)]
* lib/defines.h: Avoid implicit conversion of pointers to
booleans.
* lib/defines.h: Ignore return values of setlocale() except the
first call.
* lib/defines.h: Fix a splint observer warning by using an
intermediate variable (old_locale).
nekral-guest [Sat, 14 Jun 2008 23:38:43 +0000 (23:38 +0000)]
* libmisc/failure.c: Check return values. If lseek() failed, avoid
reading or writing at an unspecified location. Log to syslog in
case of failure when reading a faillog entry or writing in
faillog or btmp.
* libmisc/failure.c: Check if the file exist before opening it.
* libmisc/failure.c: Log failures of open() and close() when
necessary.
nekral-guest [Sat, 14 Jun 2008 21:11:19 +0000 (21:11 +0000)]
* lib/prototypes.h: Add the getrange() prototype.
* lib/prototypes.h: Fix the valid_field() prototype (does not
return an bool).
* lib/prototypes.h: Fix the valid() prototype (it does return a
bool).
nekral-guest [Sat, 14 Jun 2008 21:06:53 +0000 (21:06 +0000)]
* src/lastlog.c: Use getrange to parse the range of users.
* src/lastlog.c: umin and umax do not need to be signed long. Use
an unsigned long which might be needed to parse a GID or UID. Add
the has_umin and has_umax to replace the -1 values.
* src/lastlog.c: Cast dates to time_t.
* src/lastlog.c: Prefix lastlog errors with "lastlog: ".
nekral-guest [Fri, 13 Jun 2008 21:57:47 +0000 (21:57 +0000)]
* lib/prototypes.h: Define AUDIT_NO_ID to (unsigned int) -1. This
value should be used when the ID should not be considered.
* lib/prototypes.h: Fix the prototype of do_rlogin() according to
earlier changes.
nekral-guest [Fri, 13 Jun 2008 21:55:51 +0000 (21:55 +0000)]
* lib/shadow.c: Use SHADOW_SP_FLAG_UNSET for the initial
value of spwd.sp_flag.
* lib/shadow.c: Add brackets.
* lib/shadow.c: Avoid implicit conversion of pointers to
booleans.
* lib/shadow.c: The size argument of fgets is an int, not a
size_t.
nekral-guest [Fri, 13 Jun 2008 21:45:47 +0000 (21:45 +0000)]
* lib/gshadow.c: Use a bool when possible instead of int integers.
* lib/gshadow.c: Remove __setsgNIS() -never used).
* lib/gshadow.c: Avoid multi-statements lines.
* lib/gshadow.c: Avoid assignments in comparisons.
* lib/gshadow.c: ptr[nelem] is a string. Initialize it to NULL
instead of '\0'.
* lib/gshadow.c: Add brackets and parenthesis.
* lib/gshadow.c: The size argument of strncpy is a size_t and the
size argument of fgets is an int.
nekral-guest [Fri, 13 Jun 2008 21:35:22 +0000 (21:35 +0000)]
* lib/getdef.h, lib/getdef.c: Add getdef_ulong().
* lib/getdef.c: Added TODOs because of lack of error checking.
* lib/getdef.c: The size argument of fgets is an int, not a
size_t.
* lib/getdef.c: Avoid multi-statements lines.
nekral-guest [Fri, 13 Jun 2008 21:28:11 +0000 (21:28 +0000)]
* src/faillog.c: Ignore return value of time() when use with a
non NULL argument.
* src/faillog.c: Use a %lu format and cast number of days to
unsigned long integers.
* src/faillog.c: Cast dates to time_t.
nekral-guest [Fri, 13 Jun 2008 21:25:15 +0000 (21:25 +0000)]
* src/login.c: Ignore the return value of signal().
* src/login.c: Use a %lu format and cast group and user IDs to
unsigned long integers.
* src/login.c: Ignore return value of setlocale(),
bindtextdomain(), and textdomain().
nekral-guest [Fri, 13 Jun 2008 21:23:09 +0000 (21:23 +0000)]
* src/chage.c: Add the arguments' names in the functions
prototypes.
* src/chage.c: The ID argument of audit_logger is an unsigned
int. Use AUDIT_NO_ID instead of -1.
* src/chage.c: print_date() received a time_t.
* src/chage.c: Use SHADOW_SP_FLAG_UNSET for the initial
value of spwent.sp_flag.
nekral-guest [Fri, 13 Jun 2008 21:19:07 +0000 (21:19 +0000)]
* src/groupadd.c: The ID argument of audit_logger is an unsigned
int. Use AUDIT_NO_ID instead of -1.
* src/groupadd.c: Cast the parsed GID/UID to a gid_t/uid_t.
nekral-guest [Fri, 13 Jun 2008 21:16:01 +0000 (21:16 +0000)]
* src/pwck.c: Use a %lu format and cast group and user IDs to
unsigned long integers.
* src/pwck.c: Cast number of days to a long integer.
* src/pwck.c: Use the SCALE macro instead of (24L * 3600L)
for the values to be set in /etc/shadow.
* src/pwck.c: Use SHADOW_SP_FLAG_UNSET for the initial
value of spent.sp_flag.
nekral-guest [Fri, 13 Jun 2008 21:08:06 +0000 (21:08 +0000)]
* 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.
nekral-guest [Fri, 13 Jun 2008 21:06:04 +0000 (21:06 +0000)]
* src/useradd.c: The ID argument of audit_logger is an unsigned
int. Use AUDIT_NO_ID instead of -1.
* src/useradd.c: Cast the parsed GID/UID to a gid_t/uid_t.
* src/useradd.c: The size argument of fgets is an int, not a
size_t.
* src/useradd.c: Cast number of days to a long integer.
* src/useradd.c: Use SHADOW_SP_FLAG_UNSET for the initial
value of spent.sp_flag.
* src/useradd.c: Use a %lu format and cast group and user IDs to
unsigned long integers.
nekral-guest [Fri, 13 Jun 2008 21:02:07 +0000 (21:02 +0000)]
* src/su.c: fork() and waitpid() return a pid_t, not an int.
* src/su.c: Add brackets and parenthesis.
* src/su.c: Ignore the return value of signal().
nekral-guest [Fri, 13 Jun 2008 20:56:44 +0000 (20:56 +0000)]
* src/newusers.c: Fix the check for GID/UID validity.
* src/newusers.c: Comment why we use both getgrgid() and
gr_locate_gid().
* src/newusers.c: Cast the parsed GID/UID to a gid_t/uid_t.
* src/newusers.c: Cast the number of days to a long integer.
* src/newusers.c: Use SHADOW_SP_FLAG_UNSET for the initial
value of spent.sp_flag.
* src/newusers.c: The size argument of fgets is an int, not a
size_t.
nekral-guest [Fri, 13 Jun 2008 20:40:04 +0000 (20:40 +0000)]
* src/usermod.c: Cast dates to time_t, and number of days to a
long integer.
* src/usermod.c: Cast UIDs and GIDs to uid_t and gid_t after
checking the ranges.
* src/usermod.c: The ID argument of audit_logger is an unsigned
int.
* src/usermod.c: read() returns a ssize_t.
* src/usermod.c: Cast the return value of malloc and make sure it
receives a size_t.
nekral-guest [Fri, 13 Jun 2008 20:29:58 +0000 (20:29 +0000)]
* src/gpasswd.c: The ID argument of audit_logger is an unsigned
int.
* src/gpasswd.c: Ignore the return value of signal(). The signal
handlers are only changed for the last steps of gpasswd, and there
is no need to restore them.
nekral-guest [Fri, 13 Jun 2008 20:21:24 +0000 (20:21 +0000)]
* src/newgrp.c: Use a %lu format and cast group and user IDs to
unsigned long integers.
* src/newgrp.c: The ID argument of audit_logger is an unsigned
int.
* src/newgrp.c: Ignore the return value of signal() (the signal
handlers are assumed to be the default one and are restored
later).
* src/newgrp.c: Do not checl if a pid_t is < 0, check if equal
to (pid_t)-1.
nekral-guest [Fri, 13 Jun 2008 20:10:53 +0000 (20:10 +0000)]
* libmisc/copydir.c: Do not specify a size of arrays in the
prototypes.
* libmisc/copydir.c: Use a size_t for the length of strings.
* libmisc/copydir.c: Cast the return value of malloc().
* libmisc/copydir.c: The size argument of write() is a size_t.
nekral-guest [Fri, 13 Jun 2008 20:05:51 +0000 (20:05 +0000)]
* lib/defines.h: Include <config.h> since it uses the macro that
might be defined in this header file.
* lib/defines.h: Prefer checking if HAVE_LOCALE_H or ENABLE_NLS
are defined (rather than set to non 0).
* lib/defines.h: The dummy implementations of bindtextdomain() and
textdomain() should return a pointer. Return NULL instead of
/* empty */
* lib/defines.h: Define SHADOW_SP_FLAG_UNSET, to be used for the
initialization of sp_flag field of the shadow structures.
* lib/defines.h: Define LC_ALL, needed even if HAVE_LOCALE_H is
not defined.
nekral-guest [Fri, 13 Jun 2008 19:52:58 +0000 (19:52 +0000)]
* libmisc/sulog.c: Ignore the return value of umask() when the
mask is restored.
* libmisc/sulog.c: Add brackets.
* libmisc/sulog.c: Ignore return value of time() when use with a
non NULL argument.
nekral-guest [Fri, 13 Jun 2008 19:50:49 +0000 (19:50 +0000)]
* libmisc/log.c: Avoid assignments in comparisons.
* libmisc/log.c: Add brackets and parenthesis.
* libmisc/log.c: read() returns a ssize_t (note size_t).
* libmisc/log.c: Avoid implicit conversion of pointers to
booleans.
* libmisc/log.c: Ignore return value of time() when use with a
non NULL argument.
nekral-guest [Fri, 13 Jun 2008 19:37:15 +0000 (19:37 +0000)]
* libmisc/salt.c: Use a size_t for the size of strings instead of
unsigned int.
* libmisc/salt.c: Add brackets and parenthesis.
* libmisc/salt.c: Avoid assignments in comparisons.