Fix #523: handle NNN_PIPE (#525)

Co-authored-by: Todd Yamakawa <todd.yamakawa@arm.com>
This commit is contained in:
Todd Yamakawa 2020-04-17 07:21:57 -05:00 committed by GitHub
parent 58ecc240ed
commit c63fb28eff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4187,25 +4187,28 @@ static bool run_selected_plugin(char **path, const char *file, char *runfile, ch
g_states |= STATE_PLUGIN_INIT;
}
if (*file == '_')
return run_cmd_as_plugin(*path, file, runfile);
fd = open(g_pipepath, O_RDONLY | O_NONBLOCK);
if (fd == -1)
return FALSE;
/* Generate absolute path to plugin */
mkpath(plugindir, file, g_buf);
/* Run plugin from command */
if (*file == '_')
run_cmd_as_plugin(*path, file, runfile);
if (runfile && runfile[0]) {
xstrsncpy(*lastname, runfile, NAME_MAX);
spawn(g_buf, *lastname, *path, *path, F_NORMAL);
} else
spawn(g_buf, NULL, *path, *path, F_NORMAL);
/* Run command from plugin */
else {
/* Generate absolute path to plugin */
mkpath(plugindir, file, g_buf);
if (runfile && runfile[0]) {
xstrsncpy(*lastname, runfile, NAME_MAX);
spawn(g_buf, *lastname, *path, *path, F_NORMAL);
} else
spawn(g_buf, NULL, *path, *path, F_NORMAL);
}
len = read(fd, g_buf, PATH_MAX);
g_buf[len] = '\0';
close(fd);
if (len > 1) {