Use mkostemp, not mkstemp
authorTom Tromey <tom@tromey.com>
Thu, 20 Sep 2018 22:04:04 +0000 (16:04 -0600)
committerTom Tromey <tom@tromey.com>
Sat, 27 Oct 2018 17:58:41 +0000 (11:58 -0600)
commitb3279b601e67ce47263082ef86cfc86e25607c5e
tree3541a773fd698068cad1ae16a2842257c845eb61
parente418a61a67a3476826259163383e5deb661042cc
Use mkostemp, not mkstemp

I noticed that gdb could leak file descriptors coming from mkstemp.
This patch fixes the problem by importing the gnulib mkostemp instead,
and then changing gdb to pass O_CLOEXEC.

A small gnulib patch was needed.  This has already been accepted
upstream.

gdb/ChangeLog
2018-10-27  Tom Tromey  <tom@tromey.com>

* unittests/scoped_mmap-selftests.c (test_normal): Use
gdb_mkostemp_cloexec.
* unittests/scoped_fd-selftests.c (test_destroy, test_release):
Use gdb_mkostemp_cloexec.
* gnulib/aclocal-m4-deps.mk, gnulib/aclocal.m4,
gnulib/config.in, gnulib/configure,
gnulib/import/Makefile.am, gnulib/import/Makefile.in,
gnulib/import/m4/gnulib-cache.m4,
gnulib/import/m4/gnulib-comp.m4: Update.
* gnulib/import/m4/mkostemp.m4: New file.
* gnulib/import/m4/mkstemp.m4: Remove.
* gnulib/import/mkostemp.c: New file.
* gnulib/import/mkstemp.m4: Remove.
* gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Remove
mkstemp, add mkostemp.  Apply new patch.
* gnulib/import/stdlib.in.h: Apply patch.
* gnulib/patches/0002-mkostemp-mkostemps-Fix-compilation-error-in-C-mode-o.patch:
New file.
* dwarf-index-write.c (write_psymtabs_to_index): Use
gdb_mkostemp_cloexec.
* common/filestuff.h (gdb_mkostemp_cloexec): New function.
20 files changed:
gdb/ChangeLog
gdb/common/filestuff.h
gdb/dwarf-index-write.c
gdb/gnulib/aclocal-m4-deps.mk
gdb/gnulib/aclocal.m4
gdb/gnulib/config.in
gdb/gnulib/configure
gdb/gnulib/import/Makefile.am
gdb/gnulib/import/Makefile.in
gdb/gnulib/import/m4/gnulib-cache.m4
gdb/gnulib/import/m4/gnulib-comp.m4
gdb/gnulib/import/m4/mkostemp.m4 [new file with mode: 0644]
gdb/gnulib/import/m4/mkstemp.m4 [deleted file]
gdb/gnulib/import/mkostemp.c [new file with mode: 0644]
gdb/gnulib/import/mkstemp.c [deleted file]
gdb/gnulib/import/stdlib.in.h
gdb/gnulib/patches/0002-mkostemp-mkostemps-Fix-compilation-error-in-C-mode-o.patch [new file with mode: 0644]
gdb/gnulib/update-gnulib.sh
gdb/unittests/scoped_fd-selftests.c
gdb/unittests/scoped_mmap-selftests.c