From: Dave Reisner Date: Fri, 2 Mar 2012 03:46:59 +0000 (-0500) Subject: mountpoint: account for error from in mnt_fs_get_target X-Git-Tag: v2.22-rc1~727 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eac83fbcf6476f82aca86fe9b69f60c3a9a43d92;p=thirdparty%2Futil-linux.git mountpoint: account for error from in mnt_fs_get_target commit 04f087ec didn't take into consideration that mnt_fs_get_target() could return an error, and would therefore show false positives, such as: $ mkdir foo; mountpoint foo foo is a mountpoint Signed-off-by: Dave Reisner --- diff --git a/sys-utils/mountpoint.c b/sys-utils/mountpoint.c index bd92667590..a45cabdccf 100644 --- a/sys-utils/mountpoint.c +++ b/sys-utils/mountpoint.c @@ -45,6 +45,7 @@ static int dir_to_device(const char *spec, dev_t *dev) struct libmnt_table *tb = mnt_new_table_from_file("/proc/self/mountinfo"); struct libmnt_fs *fs; struct libmnt_cache *cache; + int rc = -1; if (!tb) { /* @@ -82,12 +83,14 @@ static int dir_to_device(const char *spec, dev_t *dev) mnt_table_set_cache(tb, cache); fs = mnt_table_find_target(tb, spec, MNT_ITER_BACKWARD); - if (fs && mnt_fs_get_target(fs)) + if (fs && mnt_fs_get_target(fs)) { *dev = mnt_fs_get_devno(fs); + rc = 0; + } mnt_free_table(tb); mnt_free_cache(cache); - return 0; + return rc; } static int print_devno(const char *devname, struct stat *st)