Rotor Control window displays with missing knob(s) and crashes when tracking.
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 60/100
Piste de recherche
Le bogue se trouve dans la fonction gtk_rot_knob_update, où le tampon local b est dimensionné trop petit pour la sortie de g_ascii_formatd et pour la boucle des étiquettes de chiffres. Commence par comparer la taille du tampon, la largeur de format passée à g_ascii_formatd et la borne de la boucle, puis vérifie que les indices des étiquettes correspondent toujours à knob->digits. C'est terminé lorsque les boutons Az et El apparaissent à l'ouverture de Rotor Control et continuent de se mettre à jour pendant le suivi, sans dépassement de tampon.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
I am new to GPredict and wanted a new compile (post 3.2.37) in order to avoid wrap around tracking. I followed directions for installing MSYS2 and with only minor fussing was able to compile for windows. The program appears generally in good order (some config defaults seem off). The main issue is that when I open Rotor Control, the Az/El knobs don't show up (Az is always missing, El is usually missing). I've tracked this down to the length of the b[7] array definition, which I believe should be 8. Just to be extra safe I set it to b[9] (not familiar with g_ascii_formatd and termination etc.) and it appears to work as intended on initial opening and tracking updates.
static void gtk_rot_knob_update(GtkRotKnob * knob)
{
gchar b[7]; //<-------- Here
gchar *buff;
guint i;
g_ascii_formatd(b, 8, "%6.2f", fabs(knob->value));
/* set label markups */
for (i = 0; i < 6; i++)
{
buff = g_strdup_printf(FMTSTR, b[i]);
gtk_label_set_markup(GTK_LABEL(knob->digits[i + 1]), buff);
g_free(buff);
}
if (knob->value < 0)
buff = g_strdup_printf(FMTSTR, '-');
else
buff = g_strdup_printf(FMTSTR, ' ');
gtk_label_set_markup(GTK_LABEL(knob->digits[0]), buff);
g_free(buff);
}
- Langage dominant
- C
- Étoiles
- 1.2k
- Forks
- 305
- Merge moyen
- 4 j 14 h
- PR mergées (30 j)
- 7
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de csete/gpredict
-
One-byte stack overflow in gpredict rotctld client (arm64 stack protector abort)Peut-être pris @Wahaj18 l’a pris il y a 5 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Exiting fullscreen mode causes a new blank window to appearPeut-être pris @Wahaj18 l’a pris il y a 1 jour. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 40/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
Toutes les issues de csete/gpredict
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 10 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 1-3 heures Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
sk3llo/ffmpeg_kit_flutter#176 ·
-
Synth suite fails unless run from the repo root: signal_flow's default machine path is cwd-relativeOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
Nimblesite/osprey#370 ·
Les mainteneurs répondent en général sous 1 jour