gprofng: Use execvp instead of execv
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Wed, 16 Aug 2023 02:45:12 +0000 (19:45 -0700)
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Thu, 17 Aug 2023 20:15:10 +0000 (13:15 -0700)
gp-display-gui (https://savannah.gnu.org/projects/gprofng-gui)
can be installed in a different directory.
In this case, $PATH is used to look up gp-display-text.
execv() does not use $PATH to find the executable.

gprofng/ChangeLog
2023-08-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

* src/gp-display-text.cc (reexec): Use execvp instead of execv.

gprofng/src/gp-display-text.cc

index 0d0a5e75e44a96969e3aed1472e1fc65fe8ac6da..85ae274fc63bbc61ad46fbac6f7b2f5fdc3555b3 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "config.h"
 #include <unistd.h>     // isatty
+#include <errno.h>
 
 #include "gp-print.h"
 #include "ipcio.h"
@@ -55,7 +56,11 @@ reexec ()
 {
   if (dbeSession != NULL)
     dbeSession->unlink_tmp_files ();
-  execv (exe_name, new_argv);
+  execvp (exe_name, new_argv);
+  fprintf (stderr, GTXT ("Error: reexec() failed (%d: %s)\n"), errno,
+          STR(strerror (errno)));
+  fflush (stderr);
+  exit (1);
 }
 
 /**