From: Darrick J. Wong Date: Tue, 27 Mar 2018 02:27:28 +0000 (-0500) Subject: libfrog: fs_table_lookup_mount should realpath the argument X-Git-Tag: v4.16.0-rc1~36 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=be66eb8ef581ae50ec9fe6ff8a95a58fe62c2b45;p=thirdparty%2Fxfsprogs-dev.git libfrog: fs_table_lookup_mount should realpath the argument Call realpath on the dir argument so that we're comparing canonical paths when looking for the mountpoint. This fixes the problem where '/home/' doesn't match '/home' even though they refer to the same thing. Signed-off-by: Darrick J. Wong Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- diff --git a/libfrog/paths.c b/libfrog/paths.c index 62b4eda6a..19ee1ea9e 100644 --- a/libfrog/paths.c +++ b/libfrog/paths.c @@ -102,16 +102,19 @@ fs_table_lookup_mount( uint i; dev_t dev = 0; char rpath[PATH_MAX]; + char dpath[PATH_MAX]; if (fs_device_number(dir, &dev)) return NULL; + if (!realpath(dir, dpath)) + return NULL; for (i = 0; i < fs_count; i++) { if (fs_table[i].fs_flags != FS_MOUNT_POINT) continue; if (!realpath(fs_table[i].fs_dir, rpath)) continue; - if (strcmp(rpath, dir) == 0) + if (strcmp(rpath, dpath) == 0) return &fs_table[i]; } return NULL;