From 65773341ee5ad9e2882fcb1aed7c3096e6b4f190 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 18 Sep 2018 16:45:59 -0600 Subject: [PATCH] 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 * ctf.c (ctf_start): Use gdb_fopen_cloexec. * common/scoped_mmap.c (mmap_file): Use gdb_open_cloexec. --- gdb/ChangeLog | 5 +++++ gdb/common/scoped_mmap.c | 3 ++- 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 + + * ctf.c (ctf_start): Use gdb_fopen_cloexec. + * common/scoped_mmap.c (mmap_file): Use gdb_open_cloexec. + 2018-09-23 Rainer Orth * 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 #include +#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)); -- 2.30.2