Initiating patrol order on units with limited fuel crashes the client under some circumstances
Happened in the gtk3.22 client built from S3_1, commit 9664b134. Tested on two air units in a custom ruleset, each with fuel for two turns, copied from the experimental/goldkeep ruleset's AWACS and Bomber, starting from a city.
Selecting "Patrol", either from the "Unit" menu, or by pressing "Q", while the mouse cursor is hovering over a tile close enough to reach within a turn, but not close enough to reach and return to a refuel point, crashes the client with a segfault.
Selecting the command while closer and then moving the cursor out does not crash the client (just displays an "invalid goto" cursor).
Selecting the command while further out does not immediately crash the client (displaying an "invalid goto" cursor), but bringing the cursor closer in then crashes the client.
- When starting within range
move_rate/2, everything is fine
- When starting outside that range, crashes as soon as the cursor enters range
Note that this was observed and tested on units with fuel for two turns, so they could theoretically fly out one turn and return the next (when doing it by hand).
#2 Updated by Marko Lindqvist 6 months ago
Reproduced in S3_1 HEAD with experimental ruleset
Thread 1 "freeciv-gtk3.22" received signal SIGSEGV, Segmentation fault.
3499 return path->positions + (path->length - 1);
#0 pf_path_last_position (path=path@entry=0x0)
#1 0x00005555555d1b73 in update_last_part
#2 0x00005555555d341c in is_valid_goto_draw_line (dest_tile=0x55555788b5e0)
#3 0x00005555555e2500 in update_line (canvas_x=<optimized out>, canvas_y=<optimized out>)
#4 0x000055555565758d in create_line_at_mouse_pos ()
#4 Updated by Marko Lindqvist 6 months ago
- File 0011-Fix-client-crash-on-setting-up-patrol-for-fuel-1-uni.patch 0011-Fix-client-crash-on-setting-up-patrol-for-fuel-1-uni.patch added
- Status changed from In Progress to Resolved