From d66de6fb3c6f5f1a623caec6704e722ac1366c78 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Thu, 30 Jan 2020 03:54:18 +0100 Subject: [PATCH] libfic: avoid infinite loop in db --- libfic/exercice.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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