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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox