From: chrubis@suse.cz
To: DAN LI <li.dan@cn.fujitsu.com>
Cc: LTP list <ltp-list@lists.sourceforge.net>
Subject: Re: [LTP] [PATCH 1/2] mount/mount03.c: clean up
Date: Tue, 9 Jul 2013 16:42:18 +0200 [thread overview]
Message-ID: <20130709144218.GA516@rei.Home> (raw)
In-Reply-To: <51D27187.2060003@cn.fujitsu.com>
Hi!
> Clean up mount03.c:
> xxx func() -> xxx func(void)
>
> clean up setup()
>
>
> Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
Sorry it took longer than usuall.
> testcases/kernel/syscalls/mount/mount03.c | 47 ++++++++++---------------------
> 1 file changed, 15 insertions(+), 32 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
> index b1aa71f..8b2d3e4 100644
> --- a/testcases/kernel/syscalls/mount/mount03.c
> +++ b/testcases/kernel/syscalls/mount/mount03.c
> @@ -85,6 +85,7 @@ static int setup_uid(void);
> char *TCID = "mount03";
> int TST_TOTAL = 6;
>
> +#define EXEC_COMMAND "cp"
> #define DEFAULT_FSTYPE "ext2"
> #define TEMP_FILE "temp_file"
> #define FILE_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
> @@ -106,7 +107,6 @@ 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,
> @@ -375,7 +375,7 @@ int test_rwflag(int i, int cnt)
> }
>
> /* setup_uid() - performs setup for NOUID test */
> -int setup_uid()
> +int setup_uid(void)
> {
> int pid, status;
> char command[PATH_MAX];
> @@ -387,7 +387,8 @@ int setup_uid()
> return 1;
> case 0:
> /* Put command into string */
> - sprintf(command, "%s %s %s", cmd, testhome_path, path_name);
> + sprintf(command, "%s %s %s",
> + EXEC_COMMAND, testhome_path, path_name);
>
> /* Run command to cp file to right spot */
> if (system(command) == 0)
What about using SAFE_CP() from safe_file_ops.h?
> @@ -410,25 +411,17 @@ int setup_uid()
> }
> }
>
> -void setup()
> +void setup(void)
> {
> - 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();
> -
> sprintf(mntpoint, "mnt_%d", getpid());
This getpid() shouldn't be needed as we are in the test tmpdir anyway.
> if (mkdir(mntpoint, DIR_MODE))
> @@ -444,38 +437,28 @@ void setup()
> 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)
> + if (open(file, O_CREAT | O_TRUNC, S_IRWXU) == -1)
> tst_brkm(TBROK, cleanup, "open file failed");
> - close(fd);
Why removing the close(fd)?
> - if (stat(file, &setuid_test_stat) < 0) {
> + 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");
> - }
> +
> + if (setuid_test_stat.st_mode != SUID_MODE && chmod(file, SUID_MODE) < 0)
> + tst_brkm(TBROK, cleanup,
> + "setuid for setuid_test failed");
^
This could now be one line statement if I'm
not mistaken
> /*
> * under temporary directory
> */
> + strcpy(testhome_path, file);
> 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);
>
> @@ -487,7 +470,7 @@ void cleanup()
> /*
> * issue a help message
> */
> -void help()
> +void help(void)
> {
> printf("-T type : specifies the type of filesystem to be mounted."
> " Default ext2.\n");
> --
Also please make all internal functions static.
And pretty please remove the absurd fs_type flag allocation.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
prev parent reply other threads:[~2013-07-09 14:40 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-02 6:21 [LTP] [PATCH 1/2] mount/mount03.c: clean up DAN LI
2013-07-02 6:23 ` [LTP] [PATCH 2/2] mount/mount03.c: Test feature MS_NOATIME of mount(2) DAN LI
2013-07-02 6:35 ` [LTP] [PATCH 2/2 v2] " DAN LI
2013-07-09 14:57 ` chrubis
2013-07-09 14:42 ` chrubis [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130709144218.GA516@rei.Home \
--to=chrubis@suse.cz \
--cc=li.dan@cn.fujitsu.com \
--cc=ltp-list@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.