Comment 17 for bug 1700827

Revision history for this message
Ken McDonell (kenj) wrote :

Update.

We've written replacements for system() and popen() that use execvp() and do not call /bin/sh -c "some command". These are __pmProcessExec() and __pmProcessPipe() in libpcp.

All uses of system() and popen() in the core libpcp library have been converted to the new routines.

There are 16 other uses of popen() in C code outside the core libpcp library that will be converted shortly.
There is one popen() in some Python code that will need additional thought/review.

There are only a handfull of other system() uses that do not involve literal strings ... we'll work through those.

And I've made some changes for the x = realloc(x, ...) pattern, but so far all of these are on fatal error paths that lead directly to exit(), so I'll continue to work on these as time permits, but don't view these as a significant risk.