* libmisc/setupenv.c: Avoid assignments in comparisons.
* libmisc/setupenv.c: Added brackets and parenthesis. * libmisc/setupenv.c: Ignore the return value of fclose (file opened read-only) * libmisc/setupenv.c: Ignore the return value of puts(). * libmisc/setupenv.c:Avoid implicit conversion of pointers to booleans.
This commit is contained in:
parent
7f165aab7f
commit
c357e94283
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
2009-04-22 Nicolas François <nicolas.francois@centraliens.net>
|
||||||
|
|
||||||
|
* libmisc/setupenv.c: Avoid assignments in comparisons.
|
||||||
|
* libmisc/setupenv.c: Added brackets and parenthesis.
|
||||||
|
* libmisc/setupenv.c: Ignore the return value of fclose (file
|
||||||
|
opened read-only)
|
||||||
|
* libmisc/setupenv.c: Ignore the return value of puts().
|
||||||
|
* libmisc/setupenv.c:Avoid implicit conversion of pointers to
|
||||||
|
booleans.
|
||||||
|
|
||||||
2009-04-22 Nicolas François <nicolas.francois@centraliens.net>
|
2009-04-22 Nicolas François <nicolas.francois@centraliens.net>
|
||||||
|
|
||||||
* libmisc/find_new_gid.c, libmisc/find_new_uid.c,
|
* libmisc/find_new_gid.c, libmisc/find_new_uid.c,
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* Copyright (c) 1989 - 1994, Julianne Frances Haugh
|
* Copyright (c) 1989 - 1994, Julianne Frances Haugh
|
||||||
* Copyright (c) 1996 - 2000, Marek Michałkiewicz
|
* Copyright (c) 1996 - 2000, Marek Michałkiewicz
|
||||||
* Copyright (c) 2001 - 2006, Tomasz Kłoczko
|
* Copyright (c) 2001 - 2006, Tomasz Kłoczko
|
||||||
* Copyright (c) 2007 - 2008, Nicolas François
|
* Copyright (c) 2007 - 2009, Nicolas François
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -76,21 +76,26 @@ static void read_env_file (const char *filename)
|
|||||||
|
|
||||||
cp = buf;
|
cp = buf;
|
||||||
/* ignore whitespace and comments */
|
/* ignore whitespace and comments */
|
||||||
while (*cp && isspace (*cp))
|
while (('\0' != *cp) && isspace (*cp)) {
|
||||||
cp++;
|
cp++;
|
||||||
if (*cp == '\0' || *cp == '#')
|
}
|
||||||
|
if (('\0' == *cp) || ('#' == *cp)) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* ignore lines which don't follow the name=value format
|
* ignore lines which don't follow the name=value format
|
||||||
* (for example, the "export NAME" shell commands)
|
* (for example, the "export NAME" shell commands)
|
||||||
*/
|
*/
|
||||||
name = cp;
|
name = cp;
|
||||||
while (*cp && !isspace (*cp) && *cp != '=')
|
while (('\0' != *cp) && !isspace (*cp) && ('=' != *cp)) {
|
||||||
cp++;
|
cp++;
|
||||||
if (*cp != '=')
|
}
|
||||||
|
if ('=' != *cp) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
/* NUL-terminate the name */
|
/* NUL-terminate the name */
|
||||||
*cp++ = '\0';
|
*cp = '\0';
|
||||||
|
cp++;
|
||||||
val = cp;
|
val = cp;
|
||||||
#if 0 /* XXX untested, and needs rewrite with fewer goto's :-) */
|
#if 0 /* XXX untested, and needs rewrite with fewer goto's :-) */
|
||||||
/*
|
/*
|
||||||
@ -174,7 +179,7 @@ static void read_env_file (const char *filename)
|
|||||||
*/
|
*/
|
||||||
addenv (name, val);
|
addenv (name, val);
|
||||||
}
|
}
|
||||||
fclose (fp);
|
(void) fclose (fp);
|
||||||
}
|
}
|
||||||
#endif /* USE_PAM */
|
#endif /* USE_PAM */
|
||||||
|
|
||||||
@ -213,9 +218,9 @@ void setup_env (struct passwd *info)
|
|||||||
"unable to cd to `%s' for user `%s'\n",
|
"unable to cd to `%s' for user `%s'\n",
|
||||||
info->pw_dir, info->pw_name));
|
info->pw_dir, info->pw_name));
|
||||||
closelog ();
|
closelog ();
|
||||||
exit (1);
|
exit (EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
puts (_("No directory, logging in with HOME=/"));
|
(void) puts (_("No directory, logging in with HOME=/"));
|
||||||
info->pw_dir = temp_pw_dir;
|
info->pw_dir = temp_pw_dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,7 +256,7 @@ void setup_env (struct passwd *info)
|
|||||||
|
|
||||||
cp = getdef_str ((info->pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH");
|
cp = getdef_str ((info->pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH");
|
||||||
|
|
||||||
if (!cp) {
|
if (NULL == cp) {
|
||||||
/* not specified, use a minimal default */
|
/* not specified, use a minimal default */
|
||||||
addenv ("PATH=/bin:/usr/bin", NULL);
|
addenv ("PATH=/bin:/usr/bin", NULL);
|
||||||
} else if (strchr (cp, '=')) {
|
} else if (strchr (cp, '=')) {
|
||||||
@ -269,23 +274,30 @@ void setup_env (struct passwd *info)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (getdef_bool ("MAIL_CHECK_ENAB")) {
|
if (getdef_bool ("MAIL_CHECK_ENAB")) {
|
||||||
if ((cp = getdef_str ("MAIL_DIR")))
|
cp = getdef_str ("MAIL_DIR");
|
||||||
|
if (NULL != cp) {
|
||||||
addenv_path ("MAIL", cp, info->pw_name);
|
addenv_path ("MAIL", cp, info->pw_name);
|
||||||
else if ((cp = getdef_str ("MAIL_FILE")))
|
} else {
|
||||||
addenv_path ("MAIL", info->pw_dir, cp);
|
cp = getdef_str ("MAIL_FILE");
|
||||||
else {
|
if (NULL != cp) {
|
||||||
|
addenv_path ("MAIL", info->pw_dir, cp);
|
||||||
|
} else {
|
||||||
#if defined(MAIL_SPOOL_FILE)
|
#if defined(MAIL_SPOOL_FILE)
|
||||||
addenv_path ("MAIL", info->pw_dir, MAIL_SPOOL_FILE);
|
addenv_path ("MAIL", info->pw_dir, MAIL_SPOOL_FILE);
|
||||||
#elif defined(MAIL_SPOOL_DIR)
|
#elif defined(MAIL_SPOOL_DIR)
|
||||||
addenv_path ("MAIL", MAIL_SPOOL_DIR, info->pw_name);
|
addenv_path ("MAIL", MAIL_SPOOL_DIR, info->pw_name);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read environment from optional config file. --marekm
|
* Read environment from optional config file. --marekm
|
||||||
*/
|
*/
|
||||||
if ((envf = getdef_str ("ENVIRON_FILE")))
|
envf = getdef_str ("ENVIRON_FILE");
|
||||||
|
if (NULL != envf) {
|
||||||
read_env_file (envf);
|
read_env_file (envf);
|
||||||
|
}
|
||||||
#endif /* !USE_PAM */
|
#endif /* !USE_PAM */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user