On Wed, 16 Nov 2022 at 10:06, Ted Yu <yuzhihong@gmail.com> wrote: >> Hi, > That check is a few line above: > > + if (fd == NULL || fgets(filename, sizeof(filename), fd) == NULL) > { > > Cheers
Thanks for the explanation. Comment on v2 patch.
fd = popen(cmd, "r"); - if (fd == NULL || fgets(filename, sizeof(filename), fd) == NULL || pclose(fd) != 0) + if (fd == NULL || fgets(filename, sizeof(filename), fd) == NULL) { + pclose(fd); write_stderr(_("%s: could not determine the data directory using command \"%s\"\n"), progname, cmd); exit(1); }
Here, segfault maybe occurs if fd is NULL. I think we can remove pclose() safely since the process will exit.
-- Regrads, Japin Li. ChengDu WenWu Information Technology Co.,Ltd.