From ecec880f946c3ff4cbad79223f6941e16e8f19c0 Mon Sep 17 00:00:00 2001 From: unwox Date: Thu, 13 Jun 2024 13:09:24 +0600 Subject: add RestoreStackFunc method for preventing stack leaks --- worker.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'worker.go') diff --git a/worker.go b/worker.go index 3c64d68..6d659da 100644 --- a/worker.go +++ b/worker.go @@ -57,6 +57,7 @@ func (w *Worker) Start (filename string) error { func (w *Worker) Listen () { for { r := <- w.read + resStack := w.lua.RestoreStackFunc() handlerRef := w.routes[r.Route] w.lua.PushFromRef(handlerRef) w.lua.PushString(r.Request.Method) @@ -70,7 +71,7 @@ func (w *Worker) Listen () { body, err := io.ReadAll(r.Request.Body) if err != nil { - w.lua.Pop(4); + resStack() r.result <- &WorkerResponse { Code: 500, Headers: make(map[string]string), @@ -101,7 +102,7 @@ func (w *Worker) Listen () { k := w.lua.ToString(-1) headers[k] = v } - w.lua.Pop(2) + resStack() r.result <- &WorkerResponse { Code: int(code), -- cgit v1.2.3