Mercurial > emacs
changeset 67337:2fdf240a514d
(internal_delete_file, Fread_file_name_internal): Avoid dangerous side effects in NILP argument.
author | Ken Raeburn <raeburn@raeburn.org> |
---|---|
date | Tue, 06 Dec 2005 07:39:37 +0000 |
parents | 1eb416c4b163 |
children | ea1fabf8e347 |
files | src/fileio.c |
diffstat | 1 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fileio.c Tue Dec 06 07:39:05 2005 +0000 +++ b/src/fileio.c Tue Dec 06 07:39:37 2005 +0000 @@ -2730,8 +2730,10 @@ internal_delete_file (filename) Lisp_Object filename; { - return NILP (internal_condition_case_1 (Fdelete_file, filename, - Qt, internal_delete_file_1)); + Lisp_Object tem; + tem = internal_condition_case_1 (Fdelete_file, filename, + Qt, internal_delete_file_1); + return NILP (tem); } DEFUN ("rename-file", Frename_file, Srename_file, 2, 3, @@ -6234,13 +6236,17 @@ #endif { /* Must do it the hard (and slow) way. */ + Lisp_Object tem; GCPRO3 (all, comp, specdir); count = SPECPDL_INDEX (); record_unwind_protect (read_file_name_cleanup, current_buffer->directory); current_buffer->directory = realdir; for (comp = Qnil; CONSP (all); all = XCDR (all)) - if (!NILP (call1 (Vread_file_name_predicate, XCAR (all)))) - comp = Fcons (XCAR (all), comp); + { + tem = call1 (Vread_file_name_predicate, XCAR (all)); + if (!NILP (tem)) + comp = Fcons (XCAR (all), comp); + } unbind_to (count, Qnil); UNGCPRO; }