Segmentation fault sur échéancier
Parisot <[email protected]>
| Newsgroups | gmane.linux.grisbi.bugs |
|---|---|
| Message-ID | <[email protected]> |
J'utilise Grisbi 0.4.1
Voici l'erreur que je reçois lorsque je double-clique sur certaines
opérations de l'échéancier.
Program received signal SIGSEGV, Segmentation fault.
0x080a33d9 in edition_echeance () at echeancier_liste.c:1170
1170 categorie = g_slist_find_custom ( liste_struct_categories,
Voici le backtrace des appels au moment du plantage.
#0 0x080a33d9 in edition_echeance () at echeancier_liste.c:1170
#1 0x080a2da6 in click_ligne_echeance (liste=0x82488f0,
evenement=0x81d8634,
data=0x0) at echeancier_liste.c:980
Le problème se situe dans la fonction edition_echeance à la ligne 1170
du fichier "echeancier_liste.c" . Voici l'extrait de code.
categorie = g_slist_find_custom ( liste_struct_categories,
GINT_TO_POINTER ( echeance_selectionnnee -> categorie ),
(GCompareFunc) recherche_categorie_par_no ) ->data;
Il se trouve que, dans mon cas, la fonction g_slist_find_custom renvoit
un pointeur nul, ce qui
fait que l'acces au membre "->data" plante puisque le pointeur est nul.
J'ai cherché à comprendre pourquoi la fonction renvoyait NULL.
En regardant dans le fichier de grisbi (xml), il se trouve que la
catégorie associée est la numéro 15.
Cette catégorie n'existe plus dans la liste des catégories (toujours
dans le fichier XML).
J'ai certainement demandé la suppression de cette catégorie et les
échéances liées à cette catégorie n'ont pas été réinitialisée Ã
"sans-catégorie".
Pour corriger mon problème, j'ai modifié le fichier XML pour que les
échéances soient à nouveau liées à une catégorie et une sous catégorie.
Piste pour corriger le problème :
- faire des tests au chargement du fichier XML pour vérifier la
cohérence du fichier chargé.
- vérifier si les échéances associées à une catégorie sont bien
réinitialisées à "sans-catégorie" lorsque cette catégorie est supprimée.
- d'une facon générale, tester que le résultat renvoyé par une fonction
n'est pas NULL.
J'espère vous avoir aidé.
Je n'ai pas utilisé le bug-tracker qui ne fonctionne pas en ce moment...
N'hésitez pas à me tenir au courant.
Cordialement
Dominique Parisot
--
Pour vous desabonner envoyez un mail a [email protected]