<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 19, 2019 at 6:29 PM Jan Stancek <<a href="mailto:jstancek@redhat.com">jstancek@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Rachel reports, that pivot_root01 crashes on latest LTP:<br>
  Thread 3.1 "pivot_root01" received signal SIGSEGV, Segmentation fault.<br>
  0x00000000004062c4 in safe_mount (file=file@entry=0x413017 "pivot_root01.c"<br>
  733             if (strcmp(filesystemtype, "ntfs")) {<br>
<br>
Don't pass NULL ptr to strcmp. Also fix return in unreachable path,<br>
to suppress warning about returning uninitialized 'rval'.<br></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">Good catch.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">And shouldn't we give a "correct" fs_type in pivot_root01.c too? Otherwise, the test would be failed on an invalid mounted operation I guess.</div><br></div><div><div class="gmail_default" style="font-size:small">--- a/testcases/kernel/syscalls/pivot_root/pivot_root01.c</div>+++ b/testcases/kernel/syscalls/pivot_root/pivot_root01.c<br>@@ -107,7 +107,7 @@ static void run(unsigned int test_case)<br>         * Create an initial root dir. pivot_root doesn't work if the initial root<br>         * dir is a initramfs, so use chroot to create a safe environment<br>         */<br>-       SAFE_MOUNT("none", "/", NULL, MS_REC|MS_PRIVATE, NULL);<br>+       SAFE_MOUNT("none", "/", "none", MS_REC|MS_PRIVATE, NULL);<br>        SAFE_MOUNT("none", CHROOT_DIR, "tmpfs", 0, 0);<br>        SAFE_CHROOT(CHROOT_DIR);<br><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Fixes: ae52b6f41bf3 ("lib: Fix safe_mount() when mounting NTFS on kernels with NTFS support")<br>
Reported-by: Rachel Sibley <<a href="mailto:rasibley@redhat.com" target="_blank">rasibley@redhat.com</a>><br>
Signed-off-by: Jan Stancek <<a href="mailto:jstancek@redhat.com" target="_blank">jstancek@redhat.com</a>><br>
---<br>
 lib/safe_macros.c | 4 ++--<br>
 1 file changed, 2 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/lib/safe_macros.c b/lib/safe_macros.c<br>
index c725c7d7763f..41fa4ca83004 100644<br>
--- a/lib/safe_macros.c<br>
+++ b/lib/safe_macros.c<br>
@@ -730,7 +730,7 @@ int safe_mount(const char *file, const int lineno, void (*cleanup_fn)(void),<br>
         * Don't try using the kernel's NTFS driver when mounting NTFS, since<br>
         * the kernel's NTFS driver doesn't have proper write support.<br>
         */<br>
-       if (strcmp(filesystemtype, "ntfs")) {<br>
+       if (!filesystemtype || strcmp(filesystemtype, "ntfs")) {<br>
                rval = mount(source, target, filesystemtype, mountflags, data);<br>
                if (!rval)<br>
                        return 0;<br>
@@ -764,7 +764,7 @@ int safe_mount(const char *file, const int lineno, void (*cleanup_fn)(void),<br>
                         mountflags, data);<br>
        }<br>
<br>
-       return rval;<br>
+       return -1;<br>
 }<br>
<br>
 int safe_umount(const char *file, const int lineno, void (*cleanup_fn)(void),<br>
-- <br>
1.8.3.1<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Regards,<br></div><div>Li Wang<br></div></div></div></div>