[procfs] /proc/.../map file descriptor leak

When opening the procfs map file, we create a cleanup routine to make
sure that the associated file descriptor gets closed, but we never
call the cleanup. So the FD gets leaked.

gdb/ChangeLog:

        * procfs.c (iterate_over_mappings): Call do_cleanups before
        returning.
This commit is contained in:
Joel Brobecker 2011-11-10 16:36:18 +00:00
parent 9bc118a5d4
commit 0a86f36427
2 changed files with 11 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2011-11-10 Joel Brobecker <brobecker@adacore.com>
* procfs.c (iterate_over_mappings): Call do_cleanups before
returning.
2011-11-09 Doug Evans <dje@google.com>
* gdbtypes.c (check_typedef): Document that this function can

View file

@ -5217,6 +5217,7 @@ iterate_over_mappings (procinfo *pi, find_memory_region_ftype child_func,
int funcstat;
int map_fd;
int nmap;
struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
#ifdef NEW_PROC_API
struct stat sbuf;
#endif
@ -5254,8 +5255,12 @@ iterate_over_mappings (procinfo *pi, find_memory_region_ftype child_func,
for (prmap = prmaps; nmap > 0; prmap++, nmap--)
if ((funcstat = (*func) (prmap, child_func, data)) != 0)
return funcstat;
{
do_cleanups (cleanups);
return funcstat;
}
do_cleanups (cleanups);
return 0;
}