URL:
<http://gna.org/bugs/?25529>
Summary: gtk-3.22 client crashes when clicking on single
active unit [with potential fix]
Project: Freeciv
Submitted by: jochent
Submitted on: Mon 20 Feb 2017 10:03:26 AM UTC
Category: client-gtk-3.22
Severity: 3 - Normal
Priority: 5 - Normal
Status: None
Assigned to: None
Originator Email:
Open/Closed: Open
Release: S3_0
Discussion Lock: Any
Operating System: None
Planned Release:
Contains string changes: None
_______________________________________________________
Details:
To reproduce the crash:
start a new game in the gtk-3.22 client, move all units except the last one
(i.e., you have a unit on a tile all by itself and active with the funny
rotating cursor around it), click on the active unit -> crash
I can make it crash reliably by activating any unit that is by itself on a
tile (click once so that the rotating cursor appears)and then click it again
-> crash
The cause:
line 537 in client/gui-gtk-3.22/mapview.c has the call
ctx = gdk_window_begin_draw_frame(pixmap, NULL);
and then
cr = gdk_drawing_context_get_cairo_context(ctx);
This crashes inside cairo (the libgdk function calls INT_cairo_region_union
with second argument NULL and that triggers a null pointer dereference).
The potential fix:
It appears that gdk_window_begin_draw_frame must be called with a valid clip
region in its second argument. I tried
ctx = gdk_window_begin_draw_frame(pixmap,
gdk_window_get_clip_region(pixmap));
and that seems to work but I have no idea if it the right thing to be doing.
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?25529>
_______________________________________________
Message sent via/by Gna!
http://gna.org/
_______________________________________________
Freeciv-dev mailing list
[email protected]
https://mail.gna.org/listinfo/freeciv-dev