diff options
author | Tom Tromey <tromey@adacore.com> | 2023-09-07 09:04:37 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2023-12-01 10:36:00 -0700 |
commit | 596cd22cb10519f9baad6295fed13443d1ef86f9 (patch) | |
tree | ead6c43bc2ee0bb5324aa5595e2cfc75d512349a | |
parent | 31141b552026de77f737c92c7a41789102bae8dc (diff) | |
download | binutils-596cd22cb10519f9baad6295fed13443d1ef86f9.zip binutils-596cd22cb10519f9baad6295fed13443d1ef86f9.tar.gz binutils-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>
-rw-r--r-- | gdb/nat/linux-procfs.c | 9 |
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. */ |