From d19df85ae4341dd2b1bf8b990968fcbf2619c053 Mon Sep 17 00:00:00 2001 From: Petar Dambovaliev Date: Thu, 30 Jan 2025 19:24:07 +0200 Subject: [PATCH] catch infite loops without condition and body --- gnovm/pkg/gnolang/transcribe.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnovm/pkg/gnolang/transcribe.go b/gnovm/pkg/gnolang/transcribe.go index dab539a8707..2e09b316a45 100644 --- a/gnovm/pkg/gnolang/transcribe.go +++ b/gnovm/pkg/gnolang/transcribe.go @@ -427,6 +427,11 @@ func transcribe(t Transform, ns []Node, ftype TransField, index int, n Node, nc return } case *ForStmt: + // infinite loop + if cnn.Cond == nil && len(cnn.Body) == 0 { + panic(fmt.Sprintf("infite loop: %+v\n", cnn)) + } + cnn2, c2 := t(ns, ftype, index, cnn, TRANS_BLOCK) if isStopOrSkip(nc, c2) { nn = cnn2