mount/mount03.c: clean up

Clean up mount03.c:
    xxx func() -> xxx func(void)

    clean up setup()

Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
Acked-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
index b1aa71f..a4c065a 100644
--- a/testcases/kernel/syscalls/mount/mount03.c
+++ b/testcases/kernel/syscalls/mount/mount03.c
@@ -16,15 +16,7 @@
  */
 
 /*
- *    EXECUTED BY	: root / superuser
- *
- *    TEST TITLE	: Test for checking mount(2) flags
- *
- *    TEST CASE TOTAL	: 6
- *
- *    AUTHOR		: Nirmala Devi Dhanasekar <nirmala.devi@wipro.com>
- *
- *    DESCRIPTION
+ * DESCRIPTION
  *	Check for basic mount(2) system call flags.
  *
  *	Verify that mount(2) syscall passes for each flag setting and validate
@@ -35,30 +27,7 @@
  *	4) MS_SYNCHRONOUS - writes are synced at once.
  *	5) MS_REMOUNT - alter flags of a mounted FS.
  *	6) MS_NOSUID - ignore suid and sgid bits.
- *
- *	Setup:
- *	  Setup signal handling.
- *	  Create a mount point.
- *	  Pause for SIGUSR1 if option specified.
- *
- *	Test:
- *	  Loop if the proper options are given.
- *	  Execute mount system call for each flag
- *	  Validate each flag setting. if validation fails
- *		Delete the mount point.
- *		Log the errno and Issue a FAIL message.
- *	  Delete the mount point.
- *	  Otherwise, Issue a PASS message.
- *
- *	Cleanup:
- *	  Print errno log and/or timing stats if options given
- *	  Delete the temporary directory(s)/file(s) created.
- *
- * RESTRICTIONS
- *	test must run with the -D option
- *	test doesn't support -c option to run it in parallel, as mount
- *	syscall is not supposed to run in parallel.
- *****************************************************************************/
+ */
 
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
@@ -73,14 +42,15 @@
 #include <fcntl.h>
 #include <pwd.h>
 #include <unistd.h>
+
 #include "test.h"
 #include "usctest.h"
+#include "safe_macros.h"
 
 static void help(void);
 static void setup(void);
 static void cleanup(void);
 static int test_rwflag(int, int);
-static int setup_uid(void);
 
 char *TCID = "mount03";
 int TST_TOTAL = 6;
@@ -92,9 +62,9 @@
 			 S_IXGRP|S_IROTH|S_IXOTH)
 #define SUID_MODE	(S_ISUID|S_IRUSR|S_IXUSR|S_IXGRP|S_IXOTH)
 
-static char *fs_type;
+static const char *fs_type = "ext2";
 
-static char mntpoint[20];
+static const char mntpoint[] = "mntpoint";
 static char *fstype;
 static char *device;
 static int tflag;
@@ -104,9 +74,7 @@
 static char write_buffer[BUFSIZ];
 static char read_buffer[BUFSIZ];
 static char path_name[PATH_MAX];
-static char testhome_path[PATH_MAX];
 static char file[PATH_MAX];
-static char *cmd = "cp";
 
 long rwflags[] = {
 	MS_RDONLY,
@@ -138,21 +106,9 @@
 			 "you must specify the device used for mounting with -D "
 			 "option");
 
-	if (tflag) {
-		fs_type = malloc(strlen(fstype) + 1);
-		if (fs_type == NULL)
-			tst_brkm(TBROK | TERRNO, NULL, "malloc failed");
+	if (tflag)
+		fs_type = fstype;
 
-		fs_type[strlen(fstype)] = '\0';
-		strncpy(fs_type, fstype, strlen(fstype));
-	} else {
-		fs_type = malloc(strlen(DEFAULT_FSTYPE) + 1);
-		if (fs_type == NULL)
-			tst_brkm(TBROK | TERRNO, NULL, "malloc failed");
-
-		strncpy(fs_type, DEFAULT_FSTYPE, strlen(DEFAULT_FSTYPE));
-		fs_type[strlen(DEFAULT_FSTYPE)] = '\0';
-	}
 
 	if (STD_COPIES != 1) {
 		tst_resm(TINFO, "-c option has no effect for this testcase - "
@@ -169,11 +125,9 @@
 
 		for (i = 0; i < TST_TOTAL; ++i) {
 
-			/* Call mount(2) */
 			TEST(mount(device, mntpoint, fs_type, rwflags[i],
 				   NULL));
 
-			/* check return code */
 			if (TEST_RETURN != 0) {
 				tst_resm(TFAIL | TTERRNO, "mount(2) failed");
 				continue;
@@ -203,12 +157,12 @@
  * test_rwflag(int i, int cnt)
  * Validate the mount system call for rwflags.
  */
-
 int test_rwflag(int i, int cnt)
 {
 	int ret, fd, pid, status;
 	char nobody_uid[] = "nobody";
 	struct passwd *ltpuser;
+	struct stat setuid_test_stat;
 
 	switch (i) {
 	case 0:
@@ -337,21 +291,23 @@
 	case 5:
 		/* Validate MS_NOSUID flag of mount call */
 
-		if (setup_uid() != 0) {
-			tst_resm(TBROK | TERRNO, "setup_uid failed");
-			return 1;
-		}
+		snprintf(file, PATH_MAX, "%ssetuid_test", path_name);
+		SAFE_FILE_PRINTF(cleanup, file, "TEST FILE");
+
+		if (stat(file, &setuid_test_stat) < 0)
+			tst_brkm(TBROK, cleanup, "stat for setuid_test failed");
+
+		if (setuid_test_stat.st_mode != SUID_MODE &&
+		    chmod(file, SUID_MODE) < 0)
+			tst_brkm(TBROK, cleanup,
+				 "setuid for setuid_test failed");
+
 		pid = fork();
 		switch (pid) {
 		case -1:
 			tst_resm(TBROK | TERRNO, "fork failed");
 			return 1;
 		case 0:
-			snprintf(file, PATH_MAX, "%ssetuid_test", path_name);
-			if (chmod(file, SUID_MODE) != 0)
-				tst_resm(TWARN, "chmod(%s, %#o) failed",
-					 file, SUID_MODE);
-
 			ltpuser = getpwnam(nobody_uid);
 			if (setreuid(ltpuser->pw_uid, ltpuser->pw_uid) == -1)
 				tst_resm(TWARN | TERRNO,
@@ -374,68 +330,18 @@
 	return 0;
 }
 
-/* setup_uid() - performs setup for NOUID test */
-int setup_uid()
+void setup(void)
 {
-	int pid, status;
-	char command[PATH_MAX];
-
-	pid = fork();
-	switch (pid) {
-	case -1:
-		tst_resm(TWARN | TERRNO, "fork failed");
-		return 1;
-	case 0:
-		/* Put command into string */
-		sprintf(command, "%s %s %s", cmd, testhome_path, path_name);
-
-		/* Run command to cp file to right spot */
-		if (system(command) == 0)
-			execlp(file, basename(file), NULL);
-		else
-			printf("call to %s failed\n", command);
-
-		exit(1);
-	default:
-		waitpid(pid, &status, 0);
-		if (WIFEXITED(status)) {
-			return WEXITSTATUS(status);
-		} else if (WIFSIGNALED(status)) {
-			return WTERMSIG(status);
-		} else {
-			/* Should be 0. */
-			assert(status == 0);
-			return 0;
-		}
-	}
-}
-
-void setup()
-{
-	int fd;
 	char path[PATH_MAX];
-	char *test_home;
-	struct stat setuid_test_stat;
 
 	tst_sig(FORK, DEF_HANDLER, cleanup);
 
-	/* Check whether we are root */
-	if (geteuid() != 0) {
-		free(fs_type);
-		tst_brkm(TBROK, NULL, "Test must be run as root");
-	}
+	tst_require_root(NULL);
 
 	tst_tmpdir();
 
-	test_home = get_current_dir_name();
+	SAFE_MKDIR(cleanup, mntpoint, DIR_MODE);
 
-	sprintf(mntpoint, "mnt_%d", getpid());
-
-	if (mkdir(mntpoint, DIR_MODE))
-		tst_brkm(TBROK | TERRNO, cleanup, "mkdir(%s, %#o) failed",
-			 mntpoint, DIR_MODE);
-
-	/* Get the current working directory of the process */
 	if (getcwd(path_name, sizeof(path_name)) == NULL)
 		tst_brkm(TBROK, cleanup, "getcwd failed");
 
@@ -443,53 +349,22 @@
 		tst_brkm(TBROK, cleanup, "chmod(%s, %#o) failed",
 			 path_name, DIR_MODE);
 
-	snprintf(file, PATH_MAX, "%s/setuid_test", path_name);
-	fd = open(file, O_CREAT | O_TRUNC, S_IRWXU);
-	if (fd == -1)
-		tst_brkm(TBROK, cleanup, "open file failed");
-	close(fd);
-
-	if (stat(file, &setuid_test_stat) < 0) {
-		tst_brkm(TBROK, cleanup, "stat for setuid_test failed");
-	} else {
-		if ((setuid_test_stat.st_uid || setuid_test_stat.st_gid) &&
-		    chown(file, 0, 0) < 0)
-			tst_brkm(TBROK, cleanup,
-				 "chown for setuid_test failed");
-
-		if (setuid_test_stat.st_mode != SUID_MODE &&
-		    chmod(file, SUID_MODE) < 0)
-			tst_brkm(TBROK, cleanup,
-				 "setuid for setuid_test failed");
-	}
-
-	/*
-	 * under temporary directory
-	 */
 	strncpy(path, path_name, PATH_MAX);
 	snprintf(path_name, PATH_MAX, "%s/%s/", path, mntpoint);
-	strcpy(testhome_path, test_home);
-	strcat(testhome_path, "/setuid_test");
 
 	TEST_PAUSE;
-
 }
 
-void cleanup()
+void cleanup(void)
 {
-	free(fs_type);
-
 	TEST_CLEANUP;
 
 	tst_rmdir();
 }
 
-/*
- * issue a help message
- */
-void help()
+void help(void)
 {
-	printf("-T type	  : specifies the type of filesystem to be mounted."
-	       " Default ext2.\n");
+	printf("-T type	  : specifies the type of filesystem to be mounted. "
+	       "Default ext2.\n");
 	printf("-D device : device used for mounting.\n");
 }