From: Lucas De Marchi Date: Sat, 14 Jan 2012 04:46:58 +0000 (-0200) Subject: depmod: deal with relative root dir X-Git-Tag: v4~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e15a56af854799dfa5b7ea07ac0b4a71e2752a5f;p=thirdparty%2Fkmod.git depmod: deal with relative root dir module paths coming from libkmod are absolute. Make sure we store the absolute dirname to compare later. --- diff --git a/tools/kmod-depmod.c b/tools/kmod-depmod.c index b8071d49..0cf28f6d 100644 --- a/tools/kmod-depmod.c +++ b/tools/kmod-depmod.c @@ -2521,8 +2521,8 @@ static int do_depmod(int argc, char *argv[]) { FILE *out = NULL; int err = 0, all = 0, maybe_all = 0, n_config_paths = 0; + char *root = NULL; const char **config_paths = NULL; - const char *root = ""; const char *system_map = NULL; const char *module_symvers = NULL; const char *null_kmod_config = NULL; @@ -2547,7 +2547,7 @@ static int do_depmod(int argc, char *argv[]) maybe_all = 1; break; case 'b': - root = optarg; + root = path_make_absolute_cwd(optarg); break; case 'C': { size_t bytes = sizeof(char *) * (n_config_paths + 2); @@ -2632,7 +2632,7 @@ static int do_depmod(int argc, char *argv[]) cfg.dirnamelen = snprintf(cfg.dirname, PATH_MAX, "%s" ROOTPREFIX "/lib/modules/%s", - root, cfg.kversion); + root == NULL ? "" : root, cfg.kversion); if (optind == argc) all = 1; @@ -2750,6 +2750,7 @@ depmod_init_failed: cmdline_failed: cfg_free(&cfg); free(config_paths); + free(root); return EXIT_FAILURE; }