Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uwm.edu!ux1.cso.uiuc.edu!ux1.cso.uiuc.edu!m.cs.uiuc.edu!s.cs.uiuc.edu!carroll From: carroll@s.cs.uiuc.edu Newsgroups: gnu.emacs.bug Subject: cmd_error() bug Message-ID: <223400005@s.cs.uiuc.edu> Date: 4 Jan 90 17:39:40 GMT Lines: 40 Nf-ID: #N:s.cs.uiuc.edu:223400005:000:1133 Nf-From: s.cs.uiuc.edu!carroll Jan 3 13:43:00 1990 Version: 18.55 OS: N/A File: keyboard.c Function: cmd_error() $$ used to delimit bug comments Lisp_Object cmd_error (data) Lisp_Object data; { Lisp_Object errmsg, tail, errname, file_error; int i; $$ extraneous code removed $$ /* Print an error message including the data items. This is done by printing it into a scratch buffer and then making a copy of the text in the buffer. */ if (!CONSP (data)) data = Qnil; tail = Fcdr (data); /* For file-error, make error message by concatenating all the data items. They are all strings. */ if (!NULL (file_error)) errmsg = XCONS (tail)->car, tail = XCONS (tail)->cdr; $$ Bug! If tail is nil, then this should crash&burn. And tail will be nil if data was nil or not a cons cell (see immediately previous if). Further, if cmd_error() is called from internal_condition_case(), then data is nil, causing this failure. $$ Alan M. Carroll "Oh goody, the Illudium Q-36 Explosive carroll@s.cs.uiuc.edu Space Modulator!" CS Grad / U of Ill @ Urbana ...{ucbvax,pur-ee,convex}!s.cs.uiuc.edu!carroll