Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Crash After Closing Antenna Control and Attempting to Open Menu

Open
#325 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
1-2 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
c
Domain
desktop

Research direction

The crash is in gtk_rot_ctrl_timeout_cb in gtk-rot-ctrl.c near line 804, which runs after rot_ctrl_destroy has already cleared SetAz. Start by checking where the timeout source is added and removed, and whether the destroy path leaves a callback that can still fire. Done means the reproduction steps (open antenna control, track, close, then open the module configure menu) no longer segfault.

Written by the indexing model from the issue text.

Description

I've noticed that Gpredict crashes with a segfault when I try to open the module configuration menu after closing the antenna control. This behavior seems related to issue #279.

OS: Ubuntu 16.04.1
Kernel: 4.15.0-142-generic
CPU: Intel (R) Core i7-7576U @ 3.50 GHz
Gpredict Version: 2.3.115-0f3be
Rotator Control: Yarsu G-5500 az-el rotator with the Yaesu GS-232B PC interface

Here is how to reproduce the issue:

  1. Open the antenna control, track, and engage
  2. Un-engage, un-track, and close the antenna control
  3. Open the satellite module popup and select "configure"

What I've learned so far is that gtk_rot_ctrl_timeout_cb is being called after rot_ctrl_destroy (which should have removed the corresponding timeout source from the default main context). At gtk-rot-ctrl.c:804 it attempts to access a property of ctrl->AzSet (at this point ctrl->SetAz is NULL) and segfaults.

I get the following error messages:

(gpredict:11045): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkRotCtrl'
Segmentation fault

Dominant language
C
Stars
1.2k
Forks
305
Avg merge
8h 48m
Merged PRs (30d)
3

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from csete/gpredict

All issues in csete/gpredict

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.