if (validate_exec(retpath) != 0)
return -1;
- snprintf(cmd, sizeof(cmd), "\"%s\" -V 2>%s", retpath, DEVNULL);
+ snprintf(cmd, sizeof(cmd), "\"%s\" -V", retpath);
if (!pipe_read_line(cmd, line, sizeof(line)))
return -1;
fflush(stdout);
fflush(stderr);
+ errno = 0;
if ((pgver = popen(cmd, "r")) == NULL)
+ {
+ perror("popen failure");
return NULL;
+ }
+ errno = 0;
if (fgets(line, maxsize, pgver) == NULL)
{
- perror("fgets failure");
+ if (feof(pgver))
+ fprintf(stderr, "no data was returned by command \"%s\"\n", cmd);
+ else
+ perror("fgets failure");
+ pclose(pgver); /* no error checking */
return NULL;
}