diff options
| author | Eli Zaretskii | 2018-08-28 10:20:46 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2018-08-28 10:20:46 +0300 |
| commit | 63e59c8ca51ced6c4d5951281cb21288da32ced3 (patch) | |
| tree | ebdfba374eb597417eb5f8ff11db822d278fb0cc /src | |
| parent | 785682c26df4ced5c62075c88477b7bc50afb332 (diff) | |
| download | emacs-63e59c8ca51ced6c4d5951281cb21288da32ced3.tar.gz emacs-63e59c8ca51ced6c4d5951281cb21288da32ced3.zip | |
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')
| -rw-r--r-- | src/eval.c | 2 |
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) */) | |||
| 773 | LOADHIST_ATTACH (sym); | 773 | LOADHIST_ATTACH (sym); |
| 774 | } | 774 | } |
| 775 | else if (!NILP (Vinternal_interpreter_environment) | 775 | else if (!NILP (Vinternal_interpreter_environment) |
| 776 | && !XSYMBOL (sym)->u.s.declared_special) | 776 | && (SYMBOLP (sym) && !XSYMBOL (sym)->u.s.declared_special)) |
| 777 | /* A simple (defvar foo) with lexical scoping does "nothing" except | 777 | /* A simple (defvar foo) with lexical scoping does "nothing" except |
| 778 | declare that var to be dynamically scoped *locally* (i.e. within | 778 | declare that var to be dynamically scoped *locally* (i.e. within |
| 779 | the current file or let-block). */ | 779 | the current file or let-block). */ |