diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2021-07-22 11:56:33 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2021-09-30 15:21:48 -0400 |
commit | 13084383e8955c2ff7017ac8839301688a9ee34d (patch) | |
tree | ffc4d5429e7315de53715fe7fce7bd26abd958b8 /gdb/nat | |
parent | e6e51c9c4b402cd46595790b26087ebf2fead8c1 (diff) | |
download | gdb-13084383e8955c2ff7017ac8839301688a9ee34d.zip gdb-13084383e8955c2ff7017ac8839301688a9ee34d.tar.gz gdb-13084383e8955c2ff7017ac8839301688a9ee34d.tar.bz2 |
gdbsupport: make gdb_open_cloexec return scoped_fd
Make gdb_open_cloexec return a scoped_fd, to encourage using automatic
management of the file descriptor closing. Except in the most trivial
cases, I changed the callers to just release the fd, which retains their
existing behavior. That will allow the transition to using scoped_fd
more to go gradually, one caller at a time.
Change-Id: Ife022b403f96e71d5ebb4f1056ef6251b30fe554
Diffstat (limited to 'gdb/nat')
-rw-r--r-- | gdb/nat/linux-namespaces.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c index 0c4fadd..c5d5eb4 100644 --- a/gdb/nat/linux-namespaces.c +++ b/gdb/nat/linux-namespaces.c @@ -520,13 +520,8 @@ static ssize_t mnsh_handle_open (int sock, const char *filename, int flags, mode_t mode) { - int fd = gdb_open_cloexec (filename, flags, mode); - ssize_t result = mnsh_return_fd (sock, fd, errno); - - if (fd >= 0) - close (fd); - - return result; + scoped_fd fd = gdb_open_cloexec (filename, flags, mode); + return mnsh_return_fd (sock, fd.get (), errno); } /* Handle a MNSH_REQ_UNLINK message. Must be async-signal-safe. */ @@ -901,7 +896,7 @@ linux_mntns_access_fs (pid_t pid) if (ns == NULL) return MNSH_FS_DIRECT; - fd = gdb_open_cloexec (linux_ns_filename (ns, pid), O_RDONLY, 0); + fd = gdb_open_cloexec (linux_ns_filename (ns, pid), O_RDONLY, 0).release (); if (fd < 0) return MNSH_FS_ERROR; @@ -968,7 +963,7 @@ linux_mntns_open_cloexec (pid_t pid, const char *filename, return -1; if (access == MNSH_FS_DIRECT) - return gdb_open_cloexec (filename, flags, mode); + return gdb_open_cloexec (filename, flags, mode).release (); gdb_assert (access == MNSH_FS_HELPER); |