changeset 94959:d2b202fafd8c

Merge from emacs--rel--22 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1159
author Miles Bader <miles@gnu.org>
date Wed, 14 May 2008 04:28:51 +0000
parents 2ad9b7089844 (current diff) 45c14bfc78c0 (diff)
children fd635b03dbe5
files lisp/ChangeLog lisp/obsolete/fast-lock.el src/ChangeLog src/emacs.c src/syssignal.h
diffstat 5 files changed, 37 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed May 14 01:58:43 2008 +0000
+++ b/lisp/ChangeLog	Wed May 14 04:28:51 2008 +0000
@@ -1,3 +1,9 @@
+2008-05-14  Simon Marshall  <simon@gnu.org>
+
+	* obsolete/fast-lock.el (fast-lock-cache-directories): Remove "."
+	from its default value and give it the risky-local-variable
+	property (CVE-2008-2142).
+
 2008-05-14  Kenichi Handa  <handa@m17n.org>
 
 	* language/korean.el ("Korean"): Set `iso639-language'
--- a/lisp/obsolete/fast-lock.el	Wed May 14 01:58:43 2008 +0000
+++ b/lisp/obsolete/fast-lock.el	Wed May 14 04:28:51 2008 +0000
@@ -270,7 +270,7 @@
 				      (integer :tag "size")))))
   :group 'fast-lock)
 
-(defcustom fast-lock-cache-directories '("." "~/.emacs-flc")
+(defcustom fast-lock-cache-directories '("~/.emacs-flc")
 ; - `internal', keep each file's Font Lock cache file in the same file.
 ; - `external', keep each file's Font Lock cache file in the same directory.
   "*Directories in which Font Lock cache files are saved and read.
@@ -288,12 +288,15 @@
  ((\"^/your/true/home/directory/\" . \".\") \"~/.emacs-flc\")
 
 would cause a file's current directory to be used if the file is under your
-home directory hierarchy, or otherwise the absolute directory `~/.emacs-flc'."
+home directory hierarchy, or otherwise the absolute directory `~/.emacs-flc'.
+For security reasons, it is not advisable to use the file's current directory
+to avoid the possibility of using the cache of another user."
   :type '(repeat (radio (directory :tag "directory")
 			(cons :tag "Matching"
 			      (regexp :tag "regexp")
 			      (directory :tag "directory"))))
   :group 'fast-lock)
+(put 'fast-lock-cache-directories 'risky-local-variable t)
 
 (defcustom fast-lock-save-events '(kill-buffer kill-emacs)
   "*Events under which caches will be saved.
--- a/src/ChangeLog	Wed May 14 01:58:43 2008 +0000
+++ b/src/ChangeLog	Wed May 14 04:28:51 2008 +0000
@@ -1,3 +1,13 @@
+2008-05-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* emacs.c (main_thread): Conditionalize on
+	FORWARD_SIGNAL_TO_MAIN_THREAD instead of HAVE_GTK_AND_PTHREAD.
+	(main) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it.
+
+	* syssignal.h (FORWARD_SIGNAL_TO_MAIN_THREAD): New define.
+	(main_thread, SIGNAL_THREAD_CHECK): Conditionalize on
+	FORWARD_SIGNAL_TO_MAIN_THREAD instead of HAVE_GTK_AND_PTHREAD.
+
 2008-05-14  Kenichi Handa  <handa@m17n.org>
 
 	* coding.c (detect_coding_iso_2022): Ignore a coding category that
--- a/src/emacs.c	Wed May 14 01:58:43 2008 +0000
+++ b/src/emacs.c	Wed May 14 04:28:51 2008 +0000
@@ -355,10 +355,10 @@
 
 void (*fatal_error_signal_hook) P_ ((void));
 
-#ifdef HAVE_GTK_AND_PTHREAD
-/* When compiled with GTK and running under Gnome, multiple threads may be
-   created.  Keep track of our main thread to make sure signals are delivered
-   to it (see syssignal.h).  */
+#ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
+/* When compiled with GTK and running under Gnome, or Carbon under Mac
+   OS X, multiple threads may be created.  Keep track of our main
+   thread to make sure signals are delivered to it (see syssignal.h).  */
 
 pthread_t main_thread;
 #endif
@@ -1035,9 +1035,9 @@
 # endif /* not SYNC_INPUT */
 #endif	/* not SYSTEM_MALLOC */
 
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
   main_thread = pthread_self ();
-#endif /* HAVE_GTK_AND_PTHREAD */
+#endif /* FORWARD_SIGNAL_TO_MAIN_THREAD */
 
 #if defined (MSDOS) || defined (WINDOWSNT)
   /* We do all file input/output as binary files.  When we need to translate
--- a/src/syssignal.h	Wed May 14 01:58:43 2008 +0000
+++ b/src/syssignal.h	Wed May 14 04:28:51 2008 +0000
@@ -21,8 +21,14 @@
 
 extern void init_signals P_ ((void));
 
-#ifdef HAVE_GTK_AND_PTHREAD
+#if defined (HAVE_GTK_AND_PTHREAD) || (defined (HAVE_CARBON) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1020)
 #include <pthread.h>
+/* If defined, asynchronous signals delivered to a non-main thread are
+   forwarded to the main thread.  */
+#define FORWARD_SIGNAL_TO_MAIN_THREAD
+#endif
+
+#ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
 extern pthread_t main_thread;
 #endif
 
@@ -208,7 +214,7 @@
 char *strsignal ();
 #endif
 
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef FORWARD_SIGNAL_TO_MAIN_THREAD
 #define SIGNAL_THREAD_CHECK(signo)                                      \
   do {                                                                  \
     if (!pthread_equal (pthread_self (), main_thread))			\
@@ -227,8 +233,8 @@
       }                                                                 \
    } while (0)
 
-#else /* not HAVE_GTK_AND_PTHREAD */
+#else /* not FORWARD_SIGNAL_TO_MAIN_THREAD */
 #define SIGNAL_THREAD_CHECK(signo)
-#endif /* not HAVE_GTK_AND_PTHREAD */
+#endif /* not FORWARD_SIGNAL_TO_MAIN_THREAD */
 /* arch-tag: 4580e86a-340d-4574-9e11-a742b6e1a152
    (do not change this comment) */