diff --git a/libfic/exercice.go b/libfic/exercice.go index 47b3c3dc..26894368 100644 --- a/libfic/exercice.go +++ b/libfic/exercice.go @@ -283,7 +283,9 @@ func (e Exercice) GetLevel() (int, error) { nb := 1 for dep != nil { nb += 1 - if edep, err := GetExercice(*dep); err != nil { + if nb > 10 || *dep == e.Id { + return nb, errors.New("Exceed number of levels") + } else if edep, err := GetExercice(*dep); err != nil { return nb, err } else { dep = edep.Depend