]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid crashes in semi-malformed 'condition-case'
authorEli Zaretskii <eliz@gnu.org>
Mon, 15 Feb 2016 14:03:54 +0000 (16:03 +0200)
committerEli Zaretskii <eliz@gnu.org>
Mon, 15 Feb 2016 14:03:54 +0000 (16:03 +0200)
* src/eval.c (internal_lisp_condition_case): Treat a handler
'(nil)' as if it were '(nil nil)'.  (Bug#22675)

src/eval.c

index 6c912bc47628615003b69a4c9b55f5520978975d..26104a58277137fd0988f9a3ad4b904f8f62ec51 100644 (file)
@@ -1245,7 +1245,7 @@ internal_lisp_condition_case (volatile Lisp_Object var, Lisp_Object bodyform,
     for (i = 0; i < clausenb; i++)
       {
        Lisp_Object clause = clauses[i];
-       Lisp_Object condition = XCAR (clause);
+       Lisp_Object condition = CONSP (clause) ? XCAR (clause) : Qnil;
        if (!CONSP (condition))
          condition = Fcons (condition, Qnil);
        struct handler *c = push_handler (condition, CONDITION_CASE);