# HG changeset patch # User stephent # Date 1171894244 0 # Node ID edaaf9a96d400276bce0e39a6783a49ed0ba7116 # Parent b104432f208eedd4ab69cff09423b50c939f694b [xemacs-hg @ 2007-02-19 14:10:43 by stephent] Fix specifier tag alist dereference crash. <87wt2emdwe.fsf@uwakimon.sk.tsukuba.ac.jp> diff -r b104432f208e -r edaaf9a96d40 src/ChangeLog --- 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 + + * 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 Code by Mike FABIAN , Takashi Iwai . diff -r b104432f208e -r edaaf9a96d40 src/specifier.c --- 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); }