diff options
author | Tom Tromey <tom@tromey.com> | 2018-09-18 16:45:59 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-09-23 12:11:16 -0600 |
commit | 65773341ee5ad9e2882fcb1aed7c3096e6b4f190 (patch) | |
tree | 29432c01b92dce80017c39d9a25e310c5d6ec10e | |
parent | 1db88d2272a776200db950c2af46e64e98ef056b (diff) |
Mark more file descriptors close-on-exec
I noticed a couple of spots in gdb that were opening files but not
marking the file descriptors as close-on-exec. This patch fixes
these.
There are still a few more of these, but they are in code that I can't
compile, so I'd prefer not to touch.
gdb/ChangeLog
2018-09-23 Tom Tromey <tom@tromey.com>
* ctf.c (ctf_start): Use gdb_fopen_cloexec.
* common/scoped_mmap.c (mmap_file): Use gdb_open_cloexec.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/common/scoped_mmap.c | 3 | ||||
-rw-r--r-- | gdb/ctf.c | 7 |
3 files changed, 12 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 686c99a1080..d864e431f56 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-09-23 Tom Tromey <tom@tromey.com> + + * ctf.c (ctf_start): Use gdb_fopen_cloexec. + * common/scoped_mmap.c (mmap_file): Use gdb_open_cloexec. + 2018-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * amd64-sol2-tdep.c (amd64_sol2_sigtramp_p): Also recognize diff --git a/gdb/common/scoped_mmap.c b/gdb/common/scoped_mmap.c index 7eb729312f0..e1fffb9336c 100644 --- a/gdb/common/scoped_mmap.c +++ b/gdb/common/scoped_mmap.c @@ -20,13 +20,14 @@ #include "defs.h" #include "scoped_mmap.h" #include "scoped_fd.h" +#include "common/filestuff.h" #ifdef HAVE_SYS_MMAN_H scoped_mmap mmap_file (const char *filename) { - scoped_fd fd (open (filename, O_RDONLY)); + scoped_fd fd (gdb_open_cloexec (filename, O_RDONLY, 0)); if (fd.get () < 0) perror_with_name (("open")); diff --git a/gdb/ctf.c b/gdb/ctf.c index a156b1faf27..43bb18ecda1 100644 --- a/gdb/ctf.c +++ b/gdb/ctf.c @@ -31,6 +31,7 @@ #include "tracefile.h" #include <ctype.h> #include <algorithm> +#include "common/filestuff.h" /* The CTF target. */ @@ -354,7 +355,8 @@ ctf_start (struct trace_file_writer *self, const char *dirname) std::string file_name = string_printf ("%s/%s", dirname, CTF_METADATA_NAME); - writer->tcs.metadata_fd = fopen (file_name.c_str (), "w"); + writer->tcs.metadata_fd + = gdb_fopen_cloexec (file_name.c_str (), "w").release (); if (writer->tcs.metadata_fd == NULL) error (_("Unable to open file '%s' for saving trace data (%s)"), file_name.c_str (), safe_strerror (errno)); @@ -362,7 +364,8 @@ ctf_start (struct trace_file_writer *self, const char *dirname) ctf_save_metadata_header (&writer->tcs); file_name = string_printf ("%s/%s", dirname, CTF_DATASTREAM_NAME); - writer->tcs.datastream_fd = fopen (file_name.c_str (), "w"); + writer->tcs.datastream_fd + = gdb_fopen_cloexec (file_name.c_str (), "w").release (); if (writer->tcs.datastream_fd == NULL) error (_("Unable to open file '%s' for saving trace data (%s)"), file_name.c_str (), safe_strerror (errno)); |