[PR gdb/28369] Use get_shell on gdb/ser-pipe.c
authorSergio Durigan Junior <sergiodj@sergiodj.net>
Sat, 25 Sep 2021 21:27:23 +0000 (17:27 -0400)
committerSergio Durigan Junior <sergiodj@sergiodj.net>
Thu, 30 Sep 2021 22:19:10 +0000 (18:19 -0400)
PR gdb/28369 reports that gdb/ser-pipe.c has an 'execl' function call
with a hard-coded "/bin/sh" as its argument.  We've had 'get_shell'
for a while now, which is conscious about the SHELL environment and a
better alternative to always calling "/bin/sh".

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28369

gdb/ser-pipe.c

index cc72010ae46fb945fdde9cb6af40b47e0d76132d..257e0d4a10705cec04933dfb9b93bf9bc012189e 100644 (file)
@@ -30,6 +30,7 @@
 #include "gdbsupport/gdb_sys_time.h"
 #include <fcntl.h>
 #include "gdbsupport/filestuff.h"
+#include "gdbsupport/pathstuff.h"
 
 #include <signal.h>
 
@@ -122,7 +123,9 @@ pipe_open (struct serial *scb, const char *name)
        }
 
       close_most_fds ();
-      execl ("/bin/sh", "sh", "-c", name, (char *) 0);
+
+      const char *shellfile = get_shell ();
+      execl (shellfile, shellfile, "-c", name, (char *) 0);
       _exit (127);
     }