summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@intel.com>2015-02-24 23:58:39 -0300
committerLucas De Marchi <lucas.demarchi@intel.com>2015-02-25 00:50:37 -0300
commite90f0704ea81c4e90663c4e8ea91e475f0b6aa36 (patch)
tree43fb68941502348462f84dd9f31de71196fdb4af
parent29ad07504badce1327007185a0efdae4a4509d69 (diff)
downloadkmod-e90f0704ea81c4e90663c4e8ea91e475f0b6aa36.tar.gz
depmod: fix leaking root on exit
-rw-r--r--tools/depmod.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/depmod.c b/tools/depmod.c
index d25f76b..a4a7479 100644
--- a/tools/depmod.c
+++ b/tools/depmod.c
@@ -2404,7 +2404,7 @@ static int do_depmod(int argc, char *argv[])
maybe_all = 1;
break;
case 'b':
- root = path_make_absolute_cwd(optarg);
+ root = optarg;
break;
case 'C': {
size_t bytes = sizeof(char *) * (n_config_paths + 2);
@@ -2483,6 +2483,9 @@ static int do_depmod(int argc, char *argv[])
cfg.kversion = un.release;
}
+ if (root)
+ root = path_make_absolute_cwd(optarg);
+
cfg.dirnamelen = snprintf(cfg.dirname, PATH_MAX,
"%s/lib/modules/%s",
root == NULL ? "" : root, cfg.kversion);
@@ -2594,6 +2597,7 @@ done:
depmod_shutdown(&depmod);
cfg_free(&cfg);
free(config_paths);
+ free(root);
return err >= 0 ? EXIT_SUCCESS : EXIT_FAILURE;
cmdline_modules_failed: