From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: storm@cua.dk (Kim F. Storm) Newsgroups: gmane.emacs.devel Subject: Re: Problem report #33 Date: Sun, 14 May 2006 13:03:29 +0200 Message-ID: References: <200605140438.k4E4c6Mu002995@scanner2.ics.uci.edu> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1147604805 360 80.91.229.2 (14 May 2006 11:06:45 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 14 May 2006 11:06:45 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun May 14 13:05:23 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1FfEPX-0008CT-Hn for ged-emacs-devel@m.gmane.org; Sun, 14 May 2006 13:05:19 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FfEPW-0004ni-Su for ged-emacs-devel@m.gmane.org; Sun, 14 May 2006 07:05:18 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FfEPL-0004mV-Bj for emacs-devel@gnu.org; Sun, 14 May 2006 07:05:07 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FfEPK-0004la-O4 for emacs-devel@gnu.org; Sun, 14 May 2006 07:05:06 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FfEPK-0004l4-Ew for emacs-devel@gnu.org; Sun, 14 May 2006 07:05:06 -0400 Original-Received: from [195.41.46.237] (helo=pfepc.post.tele.dk) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FfERU-0006mQ-HS for emacs-devel@gnu.org; Sun, 14 May 2006 07:07:21 -0400 Original-Received: from kfs-l.imdomain.dk.cua.dk (0x503e2644.bynxx3.adsl-dhcp.tele.dk [80.62.38.68]) by pfepc.post.tele.dk (Postfix) with SMTP id 880B48A0054; Sun, 14 May 2006 13:05:04 +0200 (CEST) Original-To: Dan Nicolaescu In-Reply-To: <200605140438.k4E4c6Mu002995@scanner2.ics.uci.edu> (Dan Nicolaescu's message of "Sat, 13 May 2006 21:38:05 -0700") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:54436 Archived-At: Dan Nicolaescu writes: > This one reappeared after the last xterm.c checkin. > Is it OK not to check f for NULL here? > > CID: 33 > Checker: NULL_RETURNS (help) > File: base/src/emacs/src/xterm.c > Function: handle_one_xevent > Description: Dereferencing NULL value "f" > > 5801 #ifdef HACK_EDITRES > 5802 if (event.xclient.message_type > 5803 == dpyinfo->Xatom_editres) > 5804 { > > Event returned_null: Function "x_any_window_to_frame" returned NULL value (checked 8 out of 9 times) [model] > Event var_assigned: Variable "f" assigned to NULL return value from "x_any_window_to_frame" > Also see events: [var_assigned][dereference] > > 5805 f = x_any_window_to_frame (dpyinfo, event.xclient.window); > > Event dereference: Dereferencing NULL value "f" > Also see events: [returned_null][var_assigned] > > 5806 _XEditResCheckMessages (f->output_data.x->widget, NULL, > 5807 &event, NULL); > 5808 goto done; > 5809 } Looks like a real bug -- and there's another incident a few lines below. Here is a "fix": *** xterm.c 14 May 2006 02:24:31 +0200 1.911 --- xterm.c 14 May 2006 13:02:15 +0200 *************** *** 5803,5808 **** --- 5803,5810 ---- == dpyinfo->Xatom_editres) { f = x_any_window_to_frame (dpyinfo, event.xclient.window); + if (!f) + goto OTHER; _XEditResCheckMessages (f->output_data.x->widget, NULL, &event, NULL); goto done; *************** *** 5820,5825 **** --- 5822,5829 ---- images, only, which should have 1 page. */ Pixmap pixmap = (Pixmap) event.xclient.data.l[1]; f = x_window_to_frame (dpyinfo, event.xclient.window); + if (!f) + goto OTHER; x_kill_gs_process (pixmap, f); expose_frame (f, 0, 0, 0, 0); goto done; -- Kim F. Storm http://www.cua.dk