diff options
| author | Paul Eggert | 2016-10-23 02:43:17 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-10-23 02:43:17 -0700 |
| commit | 6129cd03e20a0aaee46ceb742a9ed1ae2904eab3 (patch) | |
| tree | f432bbffba80979cec74cfc125a9f73abfd06a91 /src | |
| parent | 16d126d7559c2f58c8af6cf86c9f54b6e21cceb4 (diff) | |
| parent | b73f4668ab685dfb690eced15b20ed47f90efccb (diff) | |
| download | emacs-6129cd03e20a0aaee46ceb742a9ed1ae2904eab3.tar.gz emacs-6129cd03e20a0aaee46ceb742a9ed1ae2904eab3.zip | |
Merge from origin/emacs-25
b73f466 * lisp/cus-start.el (exec-path): Handle nil elements. (Bug#2...
55ebb70 Catch the imenu-unavailable error in sh-mode completion table
993acb5 ; Minor fix for last change in characters.el
30c4bb5 More char-width fixes
4eb4463 Fix char-width-table values for some Emoji
528997d Keep point when switching from and to *terminal* buffer
2130005 * INSTALL: Use correct Emacs release number 25.
10835b1 Avoid crashes due to objects read with the #n=object form
4de671d Improve doc string of 'completion-at-point-functions'
ceb46f0 Fix crash in evaluating functions
d8374c4 * src/filelock.c (current_lock_owner): Update comment.
Diffstat (limited to 'src')
| -rw-r--r-- | src/filelock.c | 8 | ||||
| -rw-r--r-- | src/lread.c | 13 |
2 files changed, 16 insertions, 5 deletions
diff --git a/src/filelock.c b/src/filelock.c index d4dfc1dd007..a4b742abb5d 100644 --- a/src/filelock.c +++ b/src/filelock.c | |||
| @@ -565,10 +565,10 @@ current_lock_owner (lock_info_type *owner, char *lfname) | |||
| 565 | break; | 565 | break; |
| 566 | 566 | ||
| 567 | case '\357': | 567 | case '\357': |
| 568 | /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":". | 568 | /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":" (Bug#24656). |
| 569 | This works around a bug in Samba, which can mistakenly | 569 | This works around a bug in the Linux CIFS kernel client, which can |
| 570 | transliterate ':' to U+F022 in symlink contents (Bug#24656). | 570 | mistakenly transliterate ':' to U+F022 in symlink contents. |
| 571 | See <https://bugzilla.redhat.com/show_bug.cgi?id=1271407#c8>. */ | 571 | See <https://bugzilla.redhat.com/show_bug.cgi?id=1384153>. */ |
| 572 | if (! (boot[0] == '\200' && boot[1] == '\242')) | 572 | if (! (boot[0] == '\200' && boot[1] == '\242')) |
| 573 | return -1; | 573 | return -1; |
| 574 | boot += 2; | 574 | boot += 2; |
diff --git a/src/lread.c b/src/lread.c index 10eec3b1be0..58d518ce40b 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -2917,7 +2917,18 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) | |||
| 2917 | if (c == '=') | 2917 | if (c == '=') |
| 2918 | { | 2918 | { |
| 2919 | /* Make a placeholder for #n# to use temporarily. */ | 2919 | /* Make a placeholder for #n# to use temporarily. */ |
| 2920 | AUTO_CONS (placeholder, Qnil, Qnil); | 2920 | /* Note: We used to use AUTO_CONS to allocate |
| 2921 | placeholder, but that is a bad idea, since it | ||
| 2922 | will place a stack-allocated cons cell into | ||
| 2923 | the list in read_objects, which is a | ||
| 2924 | staticpro'd global variable, and thus each of | ||
| 2925 | its elements is marked during each GC. A | ||
| 2926 | stack-allocated object will become garbled | ||
| 2927 | when its stack slot goes out of scope, and | ||
| 2928 | some other function reuses it for entirely | ||
| 2929 | different purposes, which will cause crashes | ||
| 2930 | in GC. */ | ||
| 2931 | Lisp_Object placeholder = Fcons (Qnil, Qnil); | ||
| 2921 | Lisp_Object cell = Fcons (make_number (n), placeholder); | 2932 | Lisp_Object cell = Fcons (make_number (n), placeholder); |
| 2922 | read_objects = Fcons (cell, read_objects); | 2933 | read_objects = Fcons (cell, read_objects); |
| 2923 | 2934 | ||