From 6af374811ba26950c2ac3e7f9bfd69cb986e0f27 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 12 Jan 2006 21:21:06 +0000 Subject: [PATCH] 2005-08-08 Dmitry V. Levin * system.c [LINUX] (MS_MGC_VAL): New macro. [LINUX] (mount_flags): Add it. [LINUX] (sys_mount): If neither MS_BIND nor MS_MOVE bits are set in the flags argument, try to fetch data string. Fixes RH#165377. --- system.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/system.c b/system.c index 9d840215..f3308d14 100644 --- a/system.c +++ b/system.c @@ -53,6 +53,7 @@ #define MS_POSIXACL (1<<16) /* VFS does not apply the umask */ #define MS_ACTIVE (1<<30) #define MS_NOUSER (1<<31) +#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number */ #include #include @@ -79,6 +80,7 @@ #include static const struct xlat mount_flags[] = { + { MS_MGC_VAL, "MS_MGC_VAL" }, { MS_RDONLY, "MS_RDONLY" }, { MS_NOSUID, "MS_NOSUID" }, { MS_NODEV, "MS_NODEV" }, @@ -113,7 +115,11 @@ struct tcb *tcp; tprintf("%#lx", tcp->u_arg[2]); tprintf(", "); printflags(mount_flags, tcp->u_arg[3], "MS_???"); - tprintf(", %#lx", tcp->u_arg[4]); + tprintf(", "); + if ((tcp->u_arg[3] & (MS_BIND|MS_MOVE)) == 0) + printstr(tcp, tcp->u_arg[4], -1); + else + tprintf("%#lx", tcp->u_arg[4]); } return 0; } -- 2.40.0