[Ocfs2-tools-devel] [PATCH 29/32] mount.ocfs2: Validate mount path before mount
Sunil Mushran
sunil.mushran at oracle.com
Tue Sep 14 15:54:59 PDT 2010
Check the validity of the mount dir before calling mount(2).
Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>
---
mount.ocfs2/mount.ocfs2.c | 32 +++++++++++++++++---------------
1 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/mount.ocfs2/mount.ocfs2.c b/mount.ocfs2/mount.ocfs2.c
index 9772a2d..a5e117d 100644
--- a/mount.ocfs2/mount.ocfs2.c
+++ b/mount.ocfs2/mount.ocfs2.c
@@ -407,6 +407,21 @@ int main(int argc, char **argv)
goto bail;
}
+ /* validate mount dir */
+ if (lstat(mo.dir, &statbuf)) {
+ com_err(progname, 0, "mount directory %s does not exist",
+ mo.dir);
+ goto bail;
+ } else if (stat(mo.dir, &statbuf)) {
+ com_err(progname, 0, "mount directory %s is a broken symbolic "
+ "link", mo.dir);
+ goto bail;
+ } else if (!S_ISDIR(statbuf.st_mode)) {
+ com_err(progname, 0, "mount directory %s is not a directory",
+ mo.dir);
+ goto bail;
+ }
+
block_signals (SIG_BLOCK);
if (!(mo.flags & MS_REMOUNT) && !dev_ro && clustered) {
@@ -431,21 +446,8 @@ int main(int argc, char **argv)
o2cb_complete_group_join(&cluster, &desc, errno);
}
block_signals (SIG_UNBLOCK);
-
- /* complain mount failure */
- if (lstat(mo.dir, &statbuf))
- com_err(progname, 0, "mount point %s does not "
- "exist", mo.dir);
- else if (stat(mo.dir, &statbuf))
- com_err(progname, 0, "mount point %s is a "
- "broken symbolic link", mo.dir);
- else if (!S_ISDIR(statbuf.st_mode))
- com_err(progname, 0, "mount point %s is not "
- "a directory", mo.dir);
- else
- com_err(progname, ret, "while mounting %s on %s. "
- "Check 'dmesg' for more information on this "
- "error.", mo.dev, mo.dir);
+ com_err(progname, ret, "while mounting %s on %s. Check 'dmesg' "
+ "for more information on this error.", mo.dev, mo.dir);
goto bail;
}
if (group_join) {
--
1.7.0.4
More information about the Ocfs2-tools-devel
mailing list