[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem report #33
From: |
Kim F. Storm |
Subject: |
Re: Problem report #33 |
Date: |
Sun, 14 May 2006 13:03:29 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
Dan Nicolaescu <address@hidden> 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 <address@hidden> http://www.cua.dk