diff options
author | Siddhesh Poyarekar <siddhesh@gotplt.org> | 2020-12-07 20:48:23 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@gotplt.org> | 2020-12-07 20:48:23 +0530 |
commit | 365f5fb6d0f0da83817431a275e99e6f6babbe04 (patch) | |
tree | 2fc2d6dfad654e6dba514065239d22be824b4d4a /binutils/bucomm.c | |
parent | a4915e8d6ceac18826d2c832cb1303690dc9f256 (diff) | |
download | gdb-365f5fb6d0f0da83817431a275e99e6f6babbe04.zip gdb-365f5fb6d0f0da83817431a275e99e6f6babbe04.tar.gz gdb-365f5fb6d0f0da83817431a275e99e6f6babbe04.tar.bz2 |
binutils: Use file descriptors from make_tempname
The purpose of creating a temporary file securely using mkstemp is
defeated if it is closed in make_tempname and reopened later for use;
it is as good as using mktemp. Get the file descriptor instead and
then use it to create the BFD object.
bfd/
* opncls.c (bfd_fdopenw): New function.
* bfd-in2.h: Regenerate.
binutils/
* bucomm.c (make_tempname): Add argument to return file
descriptor.
* bucomm.h (make_tempname): Likewise.
* ar.c: Include libbfd.h.
(write_archive): Adjust for change in make_tempname. Call
bfd_fdopenw instead of bfd_openw.
* objcopy.c: Include libbfd.h.
(copy_file): New argument OFD. Use bfd_fdopenw instead of
bfd_openw.
(strip_main): Adjust for change in make_tempname and
copy_file.
(copy_main): Likewise.
Diffstat (limited to 'binutils/bucomm.c')
-rw-r--r-- | binutils/bucomm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/binutils/bucomm.c b/binutils/bucomm.c index 9e6a028..5324420 100644 --- a/binutils/bucomm.c +++ b/binutils/bucomm.c @@ -532,7 +532,7 @@ template_in_dir (const char *path) as FILENAME. */ char * -make_tempname (const char *filename) +make_tempname (const char *filename, int *ofd) { char *tmpname = template_in_dir (filename); int fd; @@ -550,7 +550,7 @@ make_tempname (const char *filename) free (tmpname); return NULL; } - close (fd); + *ofd = fd; return tmpname; } |