apply accumulated post-1.6.1 patches, and bump version to 1.6.2

diff --git a/Makefile b/Makefile
index 8718ebb..9719bb4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 1
 PATCHLEVEL = 6
-SUBLEVEL = 1
+SUBLEVEL = 2
 EXTRAVERSION =
 NAME = Unnamed
 
diff --git a/coreutils/date.c b/coreutils/date.c
index 57c826a..9288699 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -32,16 +32,10 @@
 #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);
diff --git a/init/init.c b/init/init.c
index cb83b08..e3b5dc0 100644
--- a/init/init.c
+++ b/init/init.c
@@ -277,6 +277,9 @@
 			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");
diff --git a/loginutils/adduser.c b/loginutils/adduser.c
index 82a4381..ee01fc9 100644
--- a/loginutils/adduser.c
+++ b/loginutils/adduser.c
@@ -109,8 +109,9 @@
 	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 */
@@ -123,8 +124,7 @@
 				0,                      /* sp->sp_min */
 				99999,                  /* sp->sp_max */
 				7);                     /* sp->sp_warn */
-		if (ENABLE_FEATURE_CLEAN_UP)
-			fclose(file);
+		fclose(file);
 	}
 #endif
 
@@ -134,7 +134,7 @@
 	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,