[LTP] [PATCH v3 0/2] mount03: Convert to new API

Petr Vorel pvorel@suse.cz
Mon Aug 15 10:28:58 CEST 2022


Hi Xu,

...
> >>> -	SAFE_READ(0, otfd, readbuf, sizeof(readbuf));
> >>> +	nobody_uid = ltpuser->pw_uid;
> >>> +	nobody_gid = ltpuser->pw_gid;

> >>> -	SAFE_FSTAT(otfd, &file_stat);
> >>> +	snprintf(file, PATH_MAX, "%s/%s", MNTPOINT, TESTBIN);
> >>> +	TST_RESOURCE_COPY(NULL, TESTBIN, file);

> >> In fact, old test case copy resource file when mount fileystem, but now,
> >> you change this.  So in test_nosuid function, you test nosuid behaviour
> >> in tmpdir instead of different filesystems.

> > old code in setup:
> >      fs_type = tst_dev_fs_type();
> >      device = tst_acquire_device(cleanup);

> >      if (!device)
> >          tst_brkm(TCONF, cleanup, "Failed to obtain block device");

> >      tst_mkfs(cleanup, device, fs_type, NULL, NULL);

> >      SAFE_MKDIR(cleanup, mntpoint, DIR_MODE);

> >      SAFE_MOUNT(cleanup, device, mntpoint, fs_type, 0, NULL);
> >      TST_RESOURCE_COPY(cleanup, "mount03_setuid_test", path_name);

> > new code:
> >      snprintf(file, PATH_MAX, "%s/%s", MNTPOINT, TESTBIN);
> >      SAFE_CP(TESTBIN, file);

> > Well, Li in his v2 removed the code because there is .mntpoint = MNTPOINT, in
> > struct tst_test, therefore MNTPOINT is mounted in the filesystem, right?

> > But he also did SAFE_STAT and SAFE_CHMOD on MNTPOINT, which is IMHO wrong
> > (or at least different from the old code).

> Yes, it is wrong. I guess Chen misundertand mntpoint usage(it just 
> create mntpoint instead mount dev to a moutpoint).

> So do you will fix this?

Yes, see the diff below. I'm waiting little longer if anybody else has some
comments before merging it.

Thanks for your review.

> Best Regards
> Yang Xu

diff --git testcases/kernel/syscalls/mount/mount03.c testcases/kernel/syscalls/mount/mount03.c
index 74b018d78..9c58783d7 100644
--- testcases/kernel/syscalls/mount/mount03.c
+++ testcases/kernel/syscalls/mount/mount03.c
@@ -15,7 +15,6 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <pwd.h>
-#include "old_resource.h"
 #include "tst_test.h"
 #include "lapi/mount.h"
 
@@ -145,7 +144,7 @@ static void setup(void)
 	nobody_gid = ltpuser->pw_gid;
 
 	snprintf(file, PATH_MAX, "%s/%s", MNTPOINT, TESTBIN);
-	TST_RESOURCE_COPY(NULL, TESTBIN, file);
+	SAFE_CP(TESTBIN, file);
 
 	SAFE_STAT(file, &st);
 	if (st.st_mode != SUID_MODE)


More information about the ltp mailing list