summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2018-08-28 10:20:46 +0300
committerEli Zaretskii <eliz@gnu.org>2018-08-28 10:20:46 +0300
commit63e59c8ca51ced6c4d5951281cb21288da32ced3 (patch)
treeebdfba374eb597417eb5f8ff11db822d278fb0cc /src/eval.c
parent785682c26df4ced5c62075c88477b7bc50afb332 (diff)
downloademacs-63e59c8ca51ced6c4d5951281cb21288da32ced3.tar.gz
Avoid crashes in malformed defvar
* src/eval.c (Fdefvar): Don't call XSYMBOL on something that might not be a symbol. This avoids crashes due to malformed 'defvar' forms. (Bug#32552)
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index 40cba3bb1ce..f9563a3f80c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -773,7 +773,7 @@ usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */)
LOADHIST_ATTACH (sym);
}
else if (!NILP (Vinternal_interpreter_environment)
- && !XSYMBOL (sym)->u.s.declared_special)
+ && (SYMBOLP (sym) && !XSYMBOL (sym)->u.s.declared_special))
/* A simple (defvar foo) with lexical scoping does "nothing" except
declare that var to be dynamically scoped *locally* (i.e. within
the current file or let-block). */