summaryrefslogtreecommitdiff
path: root/src/lread.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2006-01-20 19:54:07 +0000
committerEli Zaretskii <eliz@gnu.org>2006-01-20 19:54:07 +0000
commit3fdf12ca117212ddbddfef58ad908e8c6a6bbf4b (patch)
tree5c98f33aab02896405b4b5d0ce254bcf0e63fe54 /src/lread.c
parent7559f399d1082a55db3193c668c0555433a59653 (diff)
downloademacs-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.c8
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);
}