diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2020-02-15 15:12:34 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-02-15 15:18:28 -0800 |
commit | 3480071dfab30eaca7f1d014600b864d2ea22f62 (patch) | |
tree | 9cf1ad2975d575710c2bb5c84a6a28681b3e398a /lisp/emacs-lisp/cl-print.el | |
parent | ccb15ada750ed1a2ed67bc58458022b9d96a9d44 (diff) | |
download | emacs-3480071dfab30eaca7f1d014600b864d2ea22f62.tar.gz emacs-3480071dfab30eaca7f1d014600b864d2ea22f62.tar.bz2 emacs-3480071dfab30eaca7f1d014600b864d2ea22f62.zip |
Fix C-h C-h bug due to mutating a hash key
Problem reported by Federico Tedin (Bug#39529).
The problem was that dumping uses a hash table based on 'equal'
when purecopying compiled objects, but then modifies the compiled
objects while they are keys in the table. This no-no was uncovered
by the sxhash fixes in 2020-01-07T19:23:11Z!eggert@cs.ucla.edu.
Eli Zaretski pinpointed the patch that triggered the bug.
* src/lread.c (read1): When reading a compiled object, replace
its docstring with a unique negative integer instead of with 0,
so that purecopy doesn’t unify it with some other compiled object
that happens to have the same Lisp code.
Diffstat (limited to 'lisp/emacs-lisp/cl-print.el')
0 files changed, 0 insertions, 0 deletions