summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStef Walter <stef@thewalter.net>2013-06-17 14:36:37 +0200
committerStef Walter <stef@thewalter.net>2013-06-17 14:44:52 +0200
commitb6e065cda1db37a6c8ed52dac3432468e1277323 (patch)
tree10c79d77c6fac08233b929374bad032f8fe7f8da
parent49e344cfa48d765ccc83a7313b1ba1c30252b84e (diff)
tools: Only use our private path when looking for external commands
Instead of looking for external commands in the path, just look for them in our private directory. We want to be conservative early on, and limit what sorta things we have to maintain later. We can later remove this restriction if a real use case presents itself.
-rw-r--r--tools/tool.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/tools/tool.c b/tools/tool.c
index a2dbcbd..dcbb1a5 100644
--- a/tools/tool.c
+++ b/tools/tool.c
@@ -194,20 +194,17 @@ exec_external (const char *command,
char *argv[])
{
char *filename;
- const char *path;
- char *env;
+ char *path;
if (!asprintf (&filename, "p11-kit-%s", command) < 0)
return_if_reached ();
/* Add our libexec directory to the path */
- path = getenv ("PATH");
- if (!asprintf (&env, "PATH=%s%s%s", path ? path : "", path ? P11_PATH_SEP : "", PRIVATEDIR))
- return_if_reached ();
- putenv (env);
+ path = p11_path_build (PRIVATEDIR, filename, NULL);
+ return_if_fail (path != NULL);
argv[0] = filename;
- execvp (filename, argv);
+ execvp (path, argv);
}
static void