GNU bug report logs - #25684
25.1; (downcase -1) segfaults Emacs on GNU/Linux

Previous Next

Package: emacs;

Reported by: Wilfred Hughes <me <at> wilfred.me.uk>

Date: Sat, 11 Feb 2017 00:03:02 UTC

Severity: normal

Found in version 25.1

Fixed in version 26.1

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Glenn Morris <rgm <at> gnu.org>
To: Wilfred Hughes <me <at> wilfred.me.uk>
Cc: 25684 <at> debbugs.gnu.org
Subject: bug#25684: 25.1; (downcase -1) segfaults Emacs on GNU/Linux
Date: Mon, 13 Feb 2017 16:29:58 -0500
Wilfred Hughes wrote:

> The elisp primitives downcase and upcase cause Emacs to segfault when
> given a negative argument. For example, (downcase -1).
>
> I can reproduce this on Emacs 25.1 as well as on master. It occurs on
> GNU/Linux but not on OS X.

I can't reproduce this, but it seems to me that (downcase -1) should
signal a wrong-type-argument error, since negative numbers are not characters.
But I think there are probably subtleties here that I don't get.

--- i/src/casefiddle.c
+++ w/src/casefiddle.c
@@ -41,7 +41,7 @@
   if (NILP (XCHAR_TABLE (BVAR (current_buffer, downcase_table))->extras[1]))
     Fset_case_table (BVAR (current_buffer, downcase_table));
 
-  if (INTEGERP (obj))
+  if (NATNUMP (obj))
     {
       int flagbits = (CHAR_ALT | CHAR_SUPER | CHAR_HYPER
 		      | CHAR_SHIFT | CHAR_CTL | CHAR_META);




This bug report was last modified 8 years and 97 days ago.

Previous Next


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