canonicalize pathnames of device & directory before daemonize() to support 
relative pathnames

Signed-off-by: dexen deVries <[email protected]>
---
 sbin/cleanerd/cleanerd.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/sbin/cleanerd/cleanerd.c b/sbin/cleanerd/cleanerd.c
index 1f03cfb..3d58916 100644
--- a/sbin/cleanerd/cleanerd.c
+++ b/sbin/cleanerd/cleanerd.c
@@ -1343,6 +1343,7 @@ static int nilfs_cleanerd_clean_loop(struct 
nilfs_cleanerd *cleanerd)
 int main(int argc, char *argv[])
 {
        char *progname, *conffile;
+       char canonical[PATH_MAX + 2];
        const char *dev, *dir;
        char *endptr;
        int status, nofork, c;
@@ -1406,6 +1407,12 @@ int main(int argc, char *argv[])
        if (optind < argc)
                dir = argv[optind++];
 
+       if (dev && myrealpath(dev, canonical, sizeof(canonical)))
+               dev = strdup(canonical);
+
+       if (dir && myrealpath(dir, canonical, sizeof(canonical)))
+               dir = strdup(canonical);
+
        if (daemonize(0, 0, nofork) < 0) {
                fprintf(stderr, "%s: %s\n", progname, strerror(errno));
                exit(1);
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to