changeset 3836:edaaf9a96d40

[xemacs-hg @ 2007-02-19 14:10:43 by stephent] Fix specifier tag alist dereference crash. <87wt2emdwe.fsf@uwakimon.sk.tsukuba.ac.jp>
author stephent
date Mon, 19 Feb 2007 14:10:44 +0000
parents b104432f208e
children 8788198e27fe
files src/ChangeLog src/specifier.c
diffstat 2 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sun Feb 18 22:51:22 2007 +0000
+++ b/src/ChangeLog	Mon Feb 19 14:10:44 2007 +0000
@@ -1,3 +1,11 @@
+2007-02-19  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* specifier.c (Fdevice_matching_specifier_tag_list):
+	Don't take XCDR of possible non-cons.  Avoids crash in VM introduced
+	or unmasked by Aidan's 2007-02-06 patch.
+
+	(setup_device_initial_specifier_tags): Nuke unused variable.
+
 2007-02-18  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	Code by Mike FABIAN <mfabian@suse.de>, Takashi Iwai <tiwai@suse.de>.
--- a/src/specifier.c	Sun Feb 18 22:51:22 2007 +0000
+++ b/src/specifier.c	Mon Feb 19 14:10:44 2007 +0000
@@ -1293,7 +1293,7 @@
 {
   Lisp_Object rest, rest2;
   Lisp_Object device = wrap_device (d);
-  Lisp_Object device_predicate, charset_predicate;
+  Lisp_Object device_predicate;
   int list_len;
 
   DEVICE_USER_DEFINED_TAGS (d) = Fcopy_alist (Vuser_defined_tags);
@@ -1395,7 +1395,7 @@
 
   LIST_LOOP (rest, DEVICE_USER_DEFINED_TAGS (d))
     {
-      if (!NILP (XCADR (XCAR (rest))))
+      if (!NILP (XCDR (XCAR (rest))))
 	list = Fcons (XCAR (XCAR (rest)), list);
     }