GNU bug report logs - #62009
29.0.60; Emacs crashes on setf symbol-name

Previous Next

Package: emacs;

Reported by: Daniel Mendler <mail <at> daniel-mendler.de>

Date: Mon, 6 Mar 2023 19:28:01 UTC

Severity: normal

Found in version 29.0.60

Full log


View this message in rfc822 format

From: Philip Kaludercic <philipk <at> posteo.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: michael_heerdegen <at> web.de, mail <at> daniel-mendler.de, monnier <at> iro.umontreal.ca, 62009 <at> debbugs.gnu.org
Subject: bug#62009: 29.0.60; Emacs crashes on setf symbol-name
Date: Fri, 10 Mar 2023 18:56:28 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Philip Kaludercic <philipk <at> posteo.net>
>> Cc: Daniel Mendler <mail <at> daniel-mendler.de>,  michael_heerdegen <at> web.de,
>>   monnier <at> iro.umontreal.ca,  62009 <at> debbugs.gnu.org
>> Date: Thu, 09 Mar 2023 21:11:13 +0000
>> 
>> > 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?
>
> It won't be easy, if at all possible.  And I'm not sure we even want
> to do that.  What would be the purpose of supporting such a use of
> Emacs?

The point is not that much that a signal is raised, but that anything
else but segfaulting is done.

Emacs is generally not "safe", but the idea of someone stuffing an
expression like the one mentioned in this bug report into the autoload
of a package just to cause chaos is uncompfortable.  Of course, you can
already do

    ;;;###autoload (delete-directory "~" t)

or

    ;;;###autoload (fset 'eval 'ignore)

so maybe my point is moot.

-- 
Philip Kaludercic




This bug report was last modified 2 years and 89 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.