bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#62009: 29.0.60; Emacs crashes on setf symbol-name


From: Philip Kaludercic
Subject: bug#62009: 29.0.60; Emacs crashes on setf symbol-name
Date: Thu, 09 Mar 2023 21:11:13 +0000

Eli Zaretskii <eliz@gnu.org> writes:

>> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 62009@debbugs.gnu.org
>> Date: Tue, 7 Mar 2023 18:08:43 +0100
>> From: Daniel Mendler <mail@daniel-mendler.de>
>> 
>> On 3/7/23 16:45, Michael Heerdegen wrote:
>> > Daniel Mendler <mail@daniel-mendler.de> writes:
>> > 
>> >> Execute the following in the scratch buffer:
>> >>
>> >> (setf (aref (symbol-name 'car) 1) ?o)
>> >>
>> >> Emacs crashes with a segmentation fault. Is this a well-known issue? I
>> >> could reproduce the problem on Emacs 27 and 29. Should there be some
>> >> mechanism to protect the strings of symbols?
>> >
>> > Maybe the outcome was something like that we can't protect everybody in
>> > every case from shooting in the own foot, I don't recall.
>> 
>> Maybe it would be possible to introduce a flag which marks strings as
>> "frozen"? Then we could ensure that no mutations of such frozen string
>> happen.
>
> AFAICT, they _are_ frozen.  These names are in read-only memory, where
> you cannot write.  That's why Emacs crashes, AFAIU: the code is trying
> to write to protected memory.
>
> Just don't do that, cause it's gonna hurt...

Is it not possible to detect this before the illegal memory access, and
raise a signal in Emacs Lisp?

-- 
Philip Kaludercic





reply via email to

[Prev in Thread] Current Thread [Next in Thread]