GNU bug report logs - #50946
Emacs-28: Inadequate coding in hack-elisp-shorthands

Previous Next

Package: emacs;

Reported by: Alan Mackenzie <acm <at> muc.de>

Date: Fri, 1 Oct 2021 17:12:02 UTC

Severity: normal

Done: João Távora <joaotavora <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Alan Mackenzie <acm <at> muc.de>
Subject: bug#50946: closed (Re: bug#50946: Emacs-28: Inadequate coding in
 hack-elisp-shorthands)
Date: Sat, 02 Oct 2021 00:49:01 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#50946: Emacs-28: Inadequate coding in hack-elisp-shorthands

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 50946 <at> debbugs.gnu.org.

-- 
50946: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=50946
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: João Távora <joaotavora <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Alan Mackenzie <acm <at> muc.de>, 50946-done <at> debbugs.gnu.org
Subject: Re: bug#50946: Emacs-28: Inadequate coding in hack-elisp-shorthands
Date: Sat, 02 Oct 2021 01:48:31 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Fri, 1 Oct 2021 17:10:57 +0000
>> From: Alan Mackenzie <acm <at> muc.de>
>> 
>> In emacs -Q in the emacs-28 branch, create the following two line file,
>> foobar.el, and try to load it:
>> 
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> (defvar foo-baz "foobar-baz")
>> FOOBARELISP-SHORTHANDS: (("foo" . "foobar")))
>> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>> 
>> This will throw an error, but that isn't important.
>> 
>> What is important is that the symbol foobar-baz is created by the
>> elisp-shorthands facility.
>> 
>> This shouldn't happen since:
>> 1/- There is no Local Variables section.
>> 2/- There is no variable elisp-shorthands in that non-existent section.
>> 
>> The following errors are evident in hack-elisp-shorthands:
>> 1/- The code doesn't check for a correctly formatted Local Variables
>>   section.
>> 2/- The code, even if it did check, would only check the last 3000 bytes
>>   in the file.  The section can occur anywhere in the last 3000
>>   CHARACTERS.
>> 3/- The code doesn't do a case-sensitive search for "elisp-shorthands".
>> 4/- The code doesn't check for "elisp-shorthands" being a complete
>>   symbol.
>> 5/- The code doesn't even check that "elisp-shorthands" is in a comment.
>
> Thanks.
>
> João, could you please look into this?

Done.  In the Emacs 28 branch.  All tests pass (except a strange
'seccomp' one that never did).  Let me know if some more bugs lurk.

Addressed all the points except the last one which doesn't make much
sense, since normal `hack-local-variables` also doesn't do any such
check.  In fact what I'm doing is re-using
hack-local-variables--find-variables from files.el, as I had wanted to
anyway.

João


[Message part 3 (message/rfc822, inline)]
From: Alan Mackenzie <acm <at> muc.de>
To: bug-gnu-emacs <at> gnu.org
Subject: Emacs-28: Inadequate coding in hack-elisp-shorthands
Date: Fri, 1 Oct 2021 17:10:57 +0000
Hello, Emacs.

In emacs -Q in the emacs-28 branch, create the following two line file,
foobar.el, and try to load it:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defvar foo-baz "foobar-baz")
FOOBARELISP-SHORTHANDS: (("foo" . "foobar")))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

This will throw an error, but that isn't important.

What is important is that the symbol foobar-baz is created by the
elisp-shorthands facility.

This shouldn't happen since:
1/- There is no Local Variables section.
2/- There is no variable elisp-shorthands in that non-existent section.

The following errors are evident in hack-elisp-shorthands:
1/- The code doesn't check for a correctly formatted Local Variables
  section.
2/- The code, even if it did check, would only check the last 3000 bytes
  in the file.  The section can occur anywhere in the last 3000
  CHARACTERS.
3/- The code doesn't do a case-sensitive search for "elisp-shorthands".
4/- The code doesn't check for "elisp-shorthands" being a complete
  symbol.
5/- The code doesn't even check that "elisp-shorthands" is in a comment.

I would suggest that these errors be corrected.  I would also suggest
that the entire code and documentation for this new facility be
carefully reviewed by somebody who isn't the original author.

-- 
Alan Mackenzie (Nuremberg, Germany).



This bug report was last modified 3 years and 235 days ago.

Previous Next


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