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.
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