aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2023-09-07 09:04:37 -0600
committerTom Tromey <tromey@adacore.com>2023-12-01 10:36:00 -0700
commit596cd22cb10519f9baad6295fed13443d1ef86f9 (patch)
treeead6c43bc2ee0bb5324aa5595e2cfc75d512349a /gdb
parent31141b552026de77f737c92c7a41789102bae8dc (diff)
downloadgdb-596cd22cb10519f9baad6295fed13443d1ef86f9.zip
gdb-596cd22cb10519f9baad6295fed13443d1ef86f9.tar.gz
gdb-596cd22cb10519f9baad6295fed13443d1ef86f9.tar.bz2
Use gdb_dir_up in linux_proc_attach_tgid_threads
This changes linux_proc_attach_tgid_threads to use gdb_dir_up. This makes it robust against exceptions. Approved-By: Simon Marchi <simon.marchi@efficios.com>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/nat/linux-procfs.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/gdb/nat/linux-procfs.c b/gdb/nat/linux-procfs.c
index 95ecae4..c7d8ba2 100644
--- a/gdb/nat/linux-procfs.c
+++ b/gdb/nat/linux-procfs.c
@@ -275,7 +275,6 @@ void
linux_proc_attach_tgid_threads (pid_t pid,
linux_proc_attach_lwp_func attach_lwp)
{
- DIR *dir;
char pathname[128];
int new_threads_found;
int iterations;
@@ -284,7 +283,7 @@ linux_proc_attach_tgid_threads (pid_t pid,
return;
xsnprintf (pathname, sizeof (pathname), "/proc/%ld/task", (long) pid);
- dir = opendir (pathname);
+ gdb_dir_up dir (opendir (pathname));
if (dir == NULL)
{
warning (_("Could not open %s."), pathname);
@@ -300,7 +299,7 @@ linux_proc_attach_tgid_threads (pid_t pid,
struct dirent *dp;
new_threads_found = 0;
- while ((dp = readdir (dir)) != NULL)
+ while ((dp = readdir (dir.get ())) != NULL)
{
unsigned long lwp;
@@ -321,10 +320,8 @@ linux_proc_attach_tgid_threads (pid_t pid,
iterations = -1;
}
- rewinddir (dir);
+ rewinddir (dir.get ());
}
-
- closedir (dir);
}
/* See linux-procfs.h. */