summaryrefslogtreecommitdiffstats
path: root/libmount/src/context.c
diff options
context:
space:
mode:
authorKarel Zak2014-09-16 15:30:03 +0200
committerKarel Zak2014-09-16 15:30:03 +0200
commita3b92242ad76a7468cf508e1d878d0815c7e031f (patch)
treea44369a813a607a7a3f55dcf6635fddbbe90367e /libmount/src/context.c
parentlscpu: fix cppcheck warnings (diff)
downloadkernel-qcow2-util-linux-a3b92242ad76a7468cf508e1d878d0815c7e031f.tar.gz
kernel-qcow2-util-linux-a3b92242ad76a7468cf508e1d878d0815c7e031f.tar.xz
kernel-qcow2-util-linux-a3b92242ad76a7468cf508e1d878d0815c7e031f.zip
libmount: hide details about failed search in fstab/mtab
The current code returns -errno when not found "mount /foo" in fstab and mtab does not exist (or /etc/mtab points to non-mounted /proc). This is problem because the return value is too low-level and maybe misinterpreted by top level code. It's better to always return MNT_ERR_NOFSTAB when not found in fstab/mtab. Reported-by: Dylan Cali <calid1984@gmail.com> Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libmount/src/context.c')
-rw-r--r--libmount/src/context.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libmount/src/context.c b/libmount/src/context.c
index 7d2b9e40f..48ee985fa 100644
--- a/libmount/src/context.c
+++ b/libmount/src/context.c
@@ -2050,8 +2050,14 @@ int mnt_context_apply_fstab(struct libmnt_context *cxt)
if (!rc)
rc = apply_table(cxt, tab, MNT_ITER_BACKWARD);
}
- if (rc)
- DBG(CXT, ul_debugobj(cxt, "failed to find entry in fstab/mtab"));
+ if (rc) {
+ DBG(CXT, ul_debugobj(cxt, "failed to find entry in fstab/mtab [rc=%d]: %m", rc));
+
+ /* force to "not found in fstab/mtab" error, the details why
+ * not found are not so important and may be misinterpreted by
+ * applications... */
+ rc = -MNT_ERR_NOFSTAB;
+ }
return rc;
}