* libmisc/limits.c: Avoid implicit conversion of integer to
boolean. * libmisc/basename.c: Avoid implicit conversion of pointer to boolean. * libmisc/basename.c, lib/prototypes.h (Basename): Return a constant string. * libmisc/basename.c, libmisc/obscure.c, lib/prototypes.h, libmisc/xmalloc.c, libmisc/getdate.h, libmisc/system.c, libmisc/getgr_nam_gid.c, libmisc/failure.c, libmisc/valid.c: Add splint annotations. * libmisc/chowndir.c: Avoid memory leak. * libmisc/chowndir.c: Do not check *printf/*puts return value. * libmisc/chowntty.c: Avoid implicit conversion between integer types. * libmisc/obscure.c: Return a bool when possible instead of int. * libmisc/shell.c: Do not check *printf/*puts return value. * libmisc/shell.c: Do not check execle return value. * libmisc/setupenv.c: Avoid implicit conversion between integer types. * libmisc/xmalloc.c: size should not be zero to avoid returning NULL pointers. * libmisc/hushed.c: Do not check *printf/*puts return value. * libmisc/system.c: Avoid implicit conversion of integer to boolean. safe_system last argument is a boolean. * libmisc/system.c: Check return value of dup2. * libmisc/system.c: Do not check *printf/*puts return value. * libmisc/system.c: Do not check execve return value. * libmisc/salt.c: Do not check *printf/*puts return value. * libmisc/loginprompt.c: Do not check gethostname return value. * libmisc/find_new_gid.c, libmisc/find_new_uid.c: Do not check gr_rewind/pw_rewind return value. * libmisc/ttytype.c: Limit the number of parsed characters in the sscanf format. * libmisc/ttytype.c: Test if a type was really read. * libmisc/sub.c: Do not check *printf/*puts return value. * libmisc/sub.c: Avoid implicit conversion of integer to boolean. * src/userdel.c: Fix typo in comment. * src/userdel.c: Avoid implicit conversion of boolean to integer. * src/userdel.c: safe_system last argument is a boolean. * src/newusers.c: Avoid implicit conversion of boolean to integer. * src/newusers.c: Avoid implicit conversion of integer to boolean. * src/usermod.c: Add brackets. * src/usermod.c: Avoid implicit conversion of characters or integers to booleans. * src/vipw.c: Avoid implicit conversion of integer to boolean. * src/su.c: Avoid implicit conversion of integer to boolean. * src/su.c: Add brackets. * src/useradd.c: Avoid implicit conversion of characters or integers to booleans.
This commit is contained in:
@@ -378,7 +378,7 @@ static int add_user (const char *name, uid_t uid, gid_t gid)
|
||||
pwent.pw_dir = ""; /* XXX warning: const */
|
||||
pwent.pw_shell = ""; /* XXX warning: const */
|
||||
|
||||
return (pw_update (&pwent) == 0);
|
||||
return (pw_update (&pwent) == 0) ? -1 : 0;
|
||||
}
|
||||
|
||||
#ifndef USE_PAM
|
||||
@@ -976,7 +976,7 @@ int main (int argc, char **argv)
|
||||
usernames[nusers-1] = strdup (fields[0]);
|
||||
passwords[nusers-1] = strdup (fields[1]);
|
||||
#endif /* USE_PAM */
|
||||
if (add_passwd (&newpw, fields[1])) {
|
||||
if (add_passwd (&newpw, fields[1]) != 0) {
|
||||
fprintf (stderr,
|
||||
_("%s: line %d: can't update password\n"),
|
||||
Prog, line);
|
||||
|
||||
14
src/su.c
14
src/su.c
@@ -127,12 +127,13 @@ static RETSIGTYPE die (int killed)
|
||||
{
|
||||
static TERMIO sgtty;
|
||||
|
||||
if (killed)
|
||||
if (killed != 0) {
|
||||
STTY (0, &sgtty);
|
||||
else
|
||||
} else {
|
||||
GTTY (0, &sgtty);
|
||||
}
|
||||
|
||||
if (killed) {
|
||||
if (killed != 0) {
|
||||
closelog ();
|
||||
exit (128+killed);
|
||||
}
|
||||
@@ -813,8 +814,9 @@ int main (int argc, char **argv)
|
||||
* The first character of an administrator defined method is an '@'
|
||||
* character.
|
||||
*/
|
||||
if (!amroot && pw_auth (pwent.pw_passwd, name, PW_SU, (char *) 0)) {
|
||||
SYSLOG ((pwent.pw_uid ? LOG_NOTICE : LOG_WARN,
|
||||
if ( !amroot
|
||||
&& (pw_auth (pwent.pw_passwd, name, PW_SU, (char *) 0) != 0)) {
|
||||
SYSLOG (((pwent.pw_uid != 0)? LOG_NOTICE : LOG_WARN,
|
||||
"Authentication failed for %s", name));
|
||||
fprintf(stderr, _("%s: Authentication failure\n"), Prog);
|
||||
su_failure (tty);
|
||||
@@ -831,7 +833,7 @@ int main (int argc, char **argv)
|
||||
spwd = pwd_to_spwd (&pwent);
|
||||
}
|
||||
|
||||
if (expire (&pwent, spwd)) {
|
||||
if (expire (&pwent, spwd) != 0) {
|
||||
/* !USE_PAM, no need for xgetpwnam */
|
||||
struct passwd *pwd = getpwnam (name);
|
||||
|
||||
|
||||
@@ -1731,7 +1731,7 @@ static void usr_update (void)
|
||||
static void selinux_update_mapping (void) {
|
||||
if (is_selinux_enabled () <= 0) return;
|
||||
|
||||
if (*user_selinux) { /* must be done after passwd write() */
|
||||
if ('\0' != *user_selinux) { /* must be done after passwd write() */
|
||||
const char *argv[7];
|
||||
argv[0] = "/usr/sbin/semanage";
|
||||
argv[1] = "login";
|
||||
@@ -1740,7 +1740,7 @@ static void selinux_update_mapping (void) {
|
||||
argv[4] = user_selinux;
|
||||
argv[5] = user_name;
|
||||
argv[6] = NULL;
|
||||
if (safe_system (argv[0], argv, NULL, 0)) {
|
||||
if (safe_system (argv[0], argv, NULL, false) != 0) {
|
||||
fprintf (stderr,
|
||||
_("%s: warning: the user name %s to %s SELinux user mapping failed.\n"),
|
||||
Prog, user_name, user_selinux);
|
||||
|
||||
@@ -632,7 +632,7 @@ static bool path_prefix (const char *s1, const char *s2)
|
||||
*
|
||||
* Return
|
||||
* 1: path exists and is owned by uid
|
||||
* 0: path is not owned by uid, or a failure occured
|
||||
* 0: path is not owned by uid, or a failure occurred
|
||||
* -1: path does not exist
|
||||
*/
|
||||
static int is_owner (uid_t uid, const char *path)
|
||||
@@ -648,7 +648,7 @@ static int is_owner (uid_t uid, const char *path)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return (st.st_uid == uid);
|
||||
return (st.st_uid == uid) ? 1 : 0;
|
||||
}
|
||||
|
||||
static int remove_mailbox (void)
|
||||
@@ -1043,7 +1043,7 @@ int main (int argc, char **argv)
|
||||
args[2] = "-d";
|
||||
args[3] = user_name;
|
||||
args[4] = NULL;
|
||||
safe_system (args[0], args, NULL, 1);
|
||||
safe_system (args[0], args, NULL, true);
|
||||
}
|
||||
#endif /* WITH_SELINUX */
|
||||
|
||||
|
||||
@@ -1851,9 +1851,11 @@ int main (int argc, char **argv)
|
||||
static void selinux_update_mapping (void) {
|
||||
const char *argv[7];
|
||||
|
||||
if (is_selinux_enabled () <= 0) return;
|
||||
if (is_selinux_enabled () <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (*user_selinux) {
|
||||
if ('\0' != *user_selinux) {
|
||||
argv[0] = "/usr/sbin/semanage";
|
||||
argv[1] = "login";
|
||||
argv[2] = "-m";
|
||||
@@ -1861,9 +1863,9 @@ static void selinux_update_mapping (void) {
|
||||
argv[4] = user_selinux;
|
||||
argv[5] = user_name;
|
||||
argv[6] = NULL;
|
||||
if (safe_system (argv[0], argv, NULL, 1)) {
|
||||
if (safe_system (argv[0], argv, NULL, true) != 0) {
|
||||
argv[2] = "-a";
|
||||
if (safe_system (argv[0], argv, NULL, 0)) {
|
||||
if (safe_system (argv[0], argv, NULL, false) != 0) {
|
||||
fprintf (stderr,
|
||||
_("%s: warning: the user name %s to %s SELinux user mapping failed.\n"),
|
||||
Prog, user_name, user_selinux);
|
||||
|
||||
@@ -231,7 +231,7 @@ vipwedit (const char *file, int (*file_lock) (void), int (*file_unlock) (void))
|
||||
#ifdef WITH_SELINUX
|
||||
/* if SE Linux is enabled then set the context of all new files
|
||||
to be the context of the file we are editing */
|
||||
if (is_selinux_enabled ()) {
|
||||
if (is_selinux_enabled () != 0) {
|
||||
security_context_t passwd_context=NULL;
|
||||
int ret = 0;
|
||||
if (getfilecon (file, &passwd_context) < 0) {
|
||||
@@ -332,7 +332,7 @@ vipwedit (const char *file, int (*file_lock) (void), int (*file_unlock) (void))
|
||||
}
|
||||
#ifdef WITH_SELINUX
|
||||
/* unset the fscreatecon */
|
||||
if (is_selinux_enabled ()) {
|
||||
if (is_selinux_enabled () != 0) {
|
||||
if (setfscreatecon (NULL) != 0) {
|
||||
vipwexit (_("setfscreatecon () failed"), errno, 1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user