diff options
author | Eli Zaretskii <eliz@gnu.org> | 2006-01-20 19:54:07 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2006-01-20 19:54:07 +0000 |
commit | 3fdf12ca117212ddbddfef58ad908e8c6a6bbf4b (patch) | |
tree | 5c98f33aab02896405b4b5d0ce254bcf0e63fe54 /src/lread.c | |
parent | 7559f399d1082a55db3193c668c0555433a59653 (diff) | |
download | emacs-3fdf12ca117212ddbddfef58ad908e8c6a6bbf4b.tar.gz emacs-3fdf12ca117212ddbddfef58ad908e8c6a6bbf4b.tar.bz2 emacs-3fdf12ca117212ddbddfef58ad908e8c6a6bbf4b.zip |
(Fload): Don't leak the file descriptor returned by openp if we are going
to signal an error.
Diffstat (limited to 'src/lread.c')
-rw-r--r-- | src/lread.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lread.c b/src/lread.c index 4d9ddfbd009..7be2ad8fa9b 100644 --- a/src/lread.c +++ b/src/lread.c @@ -801,8 +801,12 @@ Return t if file exists. */) if (!NILP (Fequal (found, XCAR (tem)))) count++; if (count > 3) - Fsignal (Qerror, Fcons (build_string ("Recursive load"), - Fcons (found, Vloads_in_progress))); + { + if (fd >= 0) + emacs_close (fd); + Fsignal (Qerror, Fcons (build_string ("Recursive load"), + Fcons (found, Vloads_in_progress))); + } record_unwind_protect (record_load_unwind, Vloads_in_progress); Vloads_in_progress = Fcons (found, Vloads_in_progress); } |