]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
PR server/15604
authorJan Kratochvil <jan.kratochvil@redhat.com>
Thu, 29 Aug 2013 14:24:16 +0000 (14:24 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Thu, 29 Aug 2013 14:24:16 +0000 (14:24 +0000)
gdb/gdbserver/
2013-08-29  Jan Kratochvil  <jan.kratochvil@redhat.com>

PR server/15604
* linux-low.c
(linux_create_inferior) <pid == 0 && !remote_connection_is_stdio ()>:
Close LISTEN_DESC and optionally REMOTE_DESC.
(lynx_create_inferior) <pid == 0 && !remote_connection_is_stdio ()>:
Close LISTEN_DESC and optionally REMOTE_DESC.
* remote-utils.c (remote_desc, listen_desc): Remove static qualifier.
* server.h (remote_desc, listen_desc): New declaration.
* spu-low.c
(spu_create_inferior) <pid == 0 && !remote_connection_is_stdio ()>:
Close LISTEN_DESC and optionally REMOTE_DESC.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c
gdb/gdbserver/lynx-low.c
gdb/gdbserver/remote-utils.c
gdb/gdbserver/server.h
gdb/gdbserver/spu-low.c

index 1cebc7cf762b983f8f495c3bf5c17e32847554e6..0d679edf0f5be4e3424373092aacebae0df8b4f4 100644 (file)
@@ -1,3 +1,17 @@
+2013-08-29  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR server/15604
+       * linux-low.c
+       (linux_create_inferior) <pid == 0 && !remote_connection_is_stdio ()>:
+       Close LISTEN_DESC and optionally REMOTE_DESC.
+       (lynx_create_inferior) <pid == 0 && !remote_connection_is_stdio ()>:
+       Close LISTEN_DESC and optionally REMOTE_DESC.
+       * remote-utils.c (remote_desc, listen_desc): Remove static qualifier.
+       * server.h (remote_desc, listen_desc): New declaration.
+       * spu-low.c
+       (spu_create_inferior) <pid == 0 && !remote_connection_is_stdio ()>:
+       Close LISTEN_DESC and optionally REMOTE_DESC.
+
 2013-05-31  Doug Evans  <dje@google.com>
 
        PR server/15594
index 523926d17907a78e833a984071973a0cafe9cf54..ead65dcf45d14f4d399d4b2e2cb89d50b1da81bf 100644 (file)
@@ -668,6 +668,12 @@ linux_create_inferior (char *program, char **allargs)
              /* Errors ignored.  */;
            }
        }
+      else
+       {
+         close (listen_desc);
+         if (gdb_connected ())
+           close (remote_desc);
+       }
 
       execv (program, allargs);
       if (errno == ENOENT)
index a5f3b6dc0c0feb47c306bde56ef12a2673a3cc0d..c12c7c3ee02f3f8b39d5dc1ef4e5512e95befe6c 100644 (file)
@@ -218,6 +218,12 @@ lynx_create_inferior (char *program, char **allargs)
       pgrp = getpid();
       setpgid (0, pgrp);
       ioctl (0, TIOCSPGRP, &pgrp);
+      if (!remote_connection_is_stdio ())
+       {
+         close (listen_desc);
+         if (gdb_connected ())
+           close (remote_desc);
+       }
       lynx_ptrace (PTRACE_TRACEME, null_ptid, 0, 0, 0);
       execv (program, allargs);
       fprintf (stderr, "Cannot exec %s: %s.\n", program, strerror (errno));
index 42c6a545c564ffcfd4054346f5c1f9e0bf5081cc..39dc5779ac878cf04b8715f631b4d99e46275b65 100644 (file)
@@ -108,8 +108,8 @@ struct ui_file *gdb_stdlog;
 
 static int remote_is_stdio = 0;
 
-static gdb_fildes_t remote_desc = INVALID_DESCRIPTOR;
-static gdb_fildes_t listen_desc = INVALID_DESCRIPTOR;
+gdb_fildes_t remote_desc = INVALID_DESCRIPTOR;
+gdb_fildes_t listen_desc = INVALID_DESCRIPTOR;
 
 /* FIXME headerize? */
 extern int using_threads;
index 139cd498c7cee46291655083b3583faf2a3985e9..b568d242e15e7081debfeff9d0226e32856a34a9 100644 (file)
@@ -274,6 +274,8 @@ extern void hostio_last_error_from_errno (char *own_buf);
 /* From remote-utils.c */
 
 extern int remote_debug;
+extern gdb_fildes_t remote_desc;
+extern gdb_fildes_t listen_desc;
 extern int noack_mode;
 extern int transport_is_reliable;
 
index deaa115c6b9176266d73a2c8d6cc06e351ca0d15..0617b018c97e9d3272b5c6b5d856217f842afb79 100644 (file)
@@ -273,6 +273,12 @@ spu_create_inferior (char *program, char **allargs)
 
   if (pid == 0)
     {
+      if (!remote_connection_is_stdio ())
+       {
+         close (listen_desc);
+         if (gdb_connected ())
+           close (remote_desc);
+       }
       ptrace (PTRACE_TRACEME, 0, 0, 0);
 
       setpgid (0, 0);