[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 6763399: Fix recently-introduced file descriptor le
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master 6763399: Fix recently-introduced file descriptor leak |
Date: |
Sat, 19 Aug 2017 02:52:56 -0400 (EDT) |
branch: master
commit 6763399ef3f268269fefd75d7c7a4ac012f66833
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Fix recently-introduced file descriptor leak
* src/fileio.c (Fmake_temp_file_internal):
Don’t leak a file descriptor if write_region signals an error.
---
src/fileio.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/fileio.c b/src/fileio.c
index 6b3bdf2..f954ac1 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -693,10 +693,14 @@ This function does not grok magic file names. */)
bool failed = fd < 0;
if (!failed)
{
+ ptrdiff_t count = SPECPDL_INDEX ();
+ record_unwind_protect_int (close_file_unwind, fd);
val = DECODE_FILE (val);
if (STRINGP (text) && SBYTES (text) != 0)
write_region (text, Qnil, val, Qnil, Qnil, Qnil, Qnil, fd);
failed = NILP (dir_flag) && emacs_close (fd) != 0;
+ /* Discard the unwind protect. */
+ specpdl_ptr = specpdl + count;
}
if (failed)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 6763399: Fix recently-introduced file descriptor leak,
Paul Eggert <=