GNU bug report logs - #78738
(signal nil 5) crashes Emacs

Previous Next

Package: emacs;

Reported by: Daniel Colascione <dancol <at> dancol.org>

Date: Mon, 9 Jun 2025 22:34:02 UTC

Severity: normal

Done: Pip Cet <pipcet <at> protonmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Pip Cet <pipcet <at> protonmail.com>
To: Daniel Colascione <dancol <at> dancol.org>
Cc: 78738 <at> debbugs.gnu.org
Subject: bug#78738: (signal nil 5) crashes Emacs
Date: Tue, 10 Jun 2025 06:22:49 +0000
"Daniel Colascione" <dancol <at> dancol.org> writes:

> (signal nil 5) crashes Emacs

Good catch!

This would fix it, right?

diff --git a/src/eval.c b/src/eval.c
index fbb881d682d..be6d1a0a9ac 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1888,7 +1888,7 @@ DEFUN ("signal", Fsignal, Ssignal, 2, 2, 0,
   (Lisp_Object error_symbol, Lisp_Object data)
 {
   /* If they call us with nonsensical arguments, produce "peculiar error".  */
-  if (NILP (error_symbol) && NILP (data))
+  if (NILP (error_symbol) && !CONSP (data))
     error_symbol = Qerror;
   signal_or_quit (error_symbol, data, false);
   eassume (false);

Note that there are currently many ways to crash Emacs by executing
dodgy Elisp; I think there should be fewer, but others appear to
disagree.  We specifically added an eassert to crash Emacs when a Lisp
function returns invalid data, for example.

Pip





This bug report was last modified 32 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.