#define DATE_OPT_TIMESPEC 0x20
#define DATE_OPT_HINT 0x40
-static void xputenv(char *s)
-{
- if (putenv(s) != 0)
- bb_error_msg_and_die(bb_msg_memory_exhausted);
-}
-
static void maybe_set_utc(int opt)
{
if (opt & DATE_OPT_UTC)
- xputenv((char*)"TZ=UTC0");
+ putenv((char*)"TZ=UTC0");
}
int date_main(int argc, char **argv);
while (fd > 2) close(fd--);
}
messageD(L_LOG, "console='%s'", s);
+ } else {
+ /* Make sure fd 0,1,2 are not closed */
+ bb_sanitize_stdio();
}
s = getenv("TERM");
if (putpwent(p, file) == -1) {
bb_perror_nomsg_and_die();
}
- if (ENABLE_FEATURE_CLEAN_UP)
- fclose(file);
+ /* Do fclose even if !ENABLE_FEATURE_CLEAN_UP.
+ * We will exec passwd, files must be flushed & closed before that! */
+ fclose(file);
#if ENABLE_FEATURE_SHADOWPASSWDS
/* add to shadow if necessary */
0, /* sp->sp_min */
99999, /* sp->sp_max */
7); /* sp->sp_warn */
- if (ENABLE_FEATURE_CLEAN_UP)
- fclose(file);
+ fclose(file);
}
#endif
if (addgroup) addgroup_wrapper(p);
/* Clear the umask for this process so it doesn't
- * * screw up the permissions on the mkdir and chown. */
+ * screw up the permissions on the mkdir and chown. */
umask(0);
if (!(option_mask32 & OPT_DONT_MAKE_HOME)) {
/* Set the owner and group so it is owned by the new user,