On Sat, Aug 7, 2021 at 10:11 PM Richard Henderson <richard.hender...@linaro.org> wrote: > > On 8/7/21 11:42 AM, Warner Losh wrote: > > + path = g_strdup(p); > > + if (path == NULL) { > > Only returns null when the input is null, which you've already eliminated. > > > +static bool find_in_path(char *path, const char *filename, char *retpath, > > + size_t rpsize) > > +{ > > + const char *d; > > + > > + while ((d = strsep(&path, ":")) != NULL) { > > + if (*d == '\0') { > > + d = "."; > > + } > > + if (snprintf(retpath, rpsize, "%s/%s", d, filename) >= > > (int)rpsize) { > > + continue; > > + } > > + if (is_there((const char *)retpath)) { > > + return true; > > + } > > + } > > + return false; > > Hmm. Fixed size retpath buffer isn't ideal. > Any reason not to use g_find_program_in_path? >
g_find_program_in_path may work well here, as well... > I note that we don't search the path at all in linux-user/. > IIRC imgact_binmisc will have the resolved path but preserve argv as it should have been were it not emulated, so we have to re-evaluate the PATH search here because we try to be faithful to the context. Thanks, Kyle Evans